這幾天對邏輯主鍵、業務主鍵和復合主鍵進行了一些思考,也在網上搜索了一下相關的討論,相關討論可以看最下面的參考鏈接。下面是自己基於 SQL Server 做的一些總結,其他數據庫(Oracle、MySQL、DB2、......)應該也類似吧。這個只是自己一時的思考,如有不當請告知,重新思考后再修正 ...
業務主鍵 natrualkey ,有意義的字段。 邏輯主鍵 surrogatekey ,無意義的字段,即自增長字段,即identity。這其中還有一個選擇GUID。 問題:到底業務單號作為主鍵 還是 邏輯主鍵做為主鍵好 業務主鍵的如果保證不變性,其實是可以的。但是有時候很難保證。例如身份證號其實也出現重復性問題。 使用邏輯主鍵會增加冗余字段。 目前建議使用邏輯主鍵。 ...
2018-08-20 15:41 0 901 推薦指數:
這幾天對邏輯主鍵、業務主鍵和復合主鍵進行了一些思考,也在網上搜索了一下相關的討論,相關討論可以看最下面的參考鏈接。下面是自己基於 SQL Server 做的一些總結,其他數據庫(Oracle、MySQL、DB2、......)應該也類似吧。這個只是自己一時的思考,如有不當請告知,重新思考后再修正 ...
一般情況下,一張數據表必須要有一個主鍵字段,這樣這個主鍵字段就可以唯一標識這條記錄了。不過采用什么樣的字段來做為主鍵字段還是一個必須解決的問題,目前有兩種常用的主鍵策略:業務主鍵與邏輯主鍵。 業務主鍵是指采用業務數據中的某個字段做為主鍵,比如在員工檔案表中可以用工號來做為主鍵、在車輛管理系統中 ...
最近研究uuid,收集的一些資料: http://www.mysqlops.com/2011/09/10/innodb-primary.html (針對InnoDB引擎)我們實際生產環境可能會使用四類屬性作為主鍵:(1). 自增序列;(2). UUID()函數生成的隨機值 ...
**about業務主鍵和邏輯主鍵 1業務主鍵(natrual key),有意義的字段。 對前端可見2邏輯主鍵(surrogate key),無意義的字段,即自增長字段,即identity。這其中還有一個選擇GUID。 如果有業務主鍵,數據唯一性就能得到保證,邏輯主鍵存在的意義 ...
轉自於:http://blog.csdn.net/haizhongyun/article/details/8056578 關於本文一些詞的說明: 單一主鍵:邏輯主鍵復合主鍵:聯合主鍵,業務主鍵 今天在做項目的數據庫設計時,突然發現自己在表的主鍵設置方面太過片面,對於邏輯主鍵和聯合 ...
需求描述:自增主鍵的格式為 業務序列+當前日期+從00001開始自增 //redis實現按業務+日期+自增 //輸出結果為:biz2020021800001、biz2020021800002、biz2020021800003的形式 @Test public void testJedis ...
在設計表結構時,我們首先遇到的問題就是主鍵設置為什么類型的。之前我用過int 也用過GUID,都不太理想: 使用int做主鍵的缺點 1、如果經常有合並表的操作,就可能會出現主鍵重復的情況。 2、使用int 數據范圍有限制。如果存在大量的數據,可能會超出int 的取值范圍 ...
1、主鍵:用PRIMARY KEY修飾的列。 若只有一個主鍵,則其不能重復。 若存在兩個或多個主鍵,則為復合主鍵(也就是多個列可以組成復合主鍵);此時,只有當組成復合主鍵的所有列的值都相同時,才不允許(把多個列同時重復才視為重復)。2、唯一鍵約束:用UNIQUE KEY ...