表中主鍵的最佳實(shí)踐是什么?在設(shè)計(jì)表格時(shí),我養(yǎng)成了一種習(xí)慣,就是有一列是唯一的,我做主鍵。實(shí)現(xiàn)這一目標(biāo)的方式有三種,視需要而定:自動(dòng)遞增的標(biāo)識(shí)整數(shù)列。唯一標(biāo)識(shí)符(GUID)一個(gè)短字符(X)或整數(shù)(或其他相對(duì)較小的數(shù)字類型)列,可用作行標(biāo)識(shí)符列。數(shù)字3將用于相當(dāng)小的查找,大多數(shù)是讀取表,這些表可能具有唯一的靜態(tài)長(zhǎng)度字符串代碼,或數(shù)字值(如年份或其他數(shù)字)。在大多數(shù)情況下,所有其他表都將具有自動(dòng)遞增整數(shù)或唯一標(biāo)識(shí)符主鍵。問題:-)我最近已經(jīng)開始使用沒有一致行標(biāo)識(shí)符的數(shù)據(jù)庫,并且主鍵當(dāng)前聚集在不同的列中。一些例子:日期時(shí)間/字符日期時(shí)間/整數(shù)日期時(shí)間/varcharChar/nvarchar/nvarchar這有正當(dāng)理由嗎?我會(huì)一直為這些情況定義標(biāo)識(shí)或唯一標(biāo)識(shí)符列。此外,還有許多表根本沒有主鍵。這樣做的有效理由(如果有的話)是什么?我試著去理解為什么桌子是按原來的設(shè)計(jì)的,對(duì)我來說,這似乎是一堆亂七八糟的東西,但也許這是有充分理由的。第三個(gè)問題可以幫助我破譯答案:在使用多個(gè)列組成復(fù)合主鍵的情況下,這種方法相對(duì)于代理/人工密鑰有什么特殊的優(yōu)勢(shì)嗎?我主要考慮的是性能、維護(hù)、管理等?
表中主鍵的最佳實(shí)踐是什么?
拉風(fēng)的咖菲貓
2019-07-09 16:47:30