資料庫主鍵方案

2021-09-01 21:53:07 字數 578 閱讀 5543

1、堅決不可以用某個業務字段做主鍵,理由就不說了,業務都是有意義的,你能保證它產生的規則不變嗎?

2、如果要彙總兩個庫表,id很多重複,那為什麼要把a表的資料匯入到b表,為什麼程式不能自己到2個表中去查詢呢,再說了,資料大了還要拆表呢

3、guid作為主鍵,mysql本身並沒有這個資料型別,oracle和sql server都有,它的缺點為:1、儲存空間比自增型大很多;2、主鍵在這上面做索引,怎麼保證有序,全是毫無意義的一串數字,效率低下,所以mysql本身就棄用了此方案

4、還有一種方案是使用兩套主鍵,乙個是資料庫自增的主鍵(pk),另乙個就是我們認為的業務「主鍵」(不是資料庫上的pk),根據它去做資料的findbyid和關聯查詢,它的實現方案是用自定義的資料庫表儲存某個表當前的業務「主鍵」值,然後同步控制讀取+1去實現,當然在讀取值時,使用了

conn.settransactionisolation(connection. transaction_serializable );
避免在多個例項併發時的問題,但是這是最高的隔離級別啊,可想而知效率會怎麼樣;另外,就算在同乙個jvm中的synchronized也很要命,這種方案也不是好的選擇

資料庫主鍵ID管理方案

資料庫常常使用自增主鍵。通常會遇到這些問題 當我們在匯入舊資料時常常會發生主鍵重複衝突 資料庫主鍵沒有任何業務意義 常常會出現插入資料前需要獲取資料主鍵的情況,mysql下讓人頭大。生產過程中,常常用一張表以及函式來幫助維護業務表的主鍵。表用來存放業務表序列,函式用來處理並獲取業務表序列。當有業務資...

資料庫主鍵設計

主鍵的必要性 有些朋友可能不提倡資料庫表必須要主鍵,但在我的思考中,覺得每個表都應該具有主鍵,不管是單主鍵還是雙主鍵,主鍵的存在就代表著表結構的完整性,表的記錄必須得有唯一區分的字段,主鍵主要是用於其他表的外來鍵關聯,本記錄的修改與刪除,當我們沒有主鍵時,這些操作會變的非常麻煩。主鍵的無意義性 我強...

資料庫主鍵生成策略

在建立資料庫的時候,需要為每張表指定乙個主鍵,所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,乙個表只能有乙個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新 刪除的時候不會出現張冠李戴的錯誤。資料庫的主鍵生成有多種方式,每種方式都有其優點和缺點,應該根據不同的...