3 回答

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以通過(guò)使用所謂的自然鍵而不是代理鍵來(lái)避免一些已連接的查詢。只有您可以評(píng)估其在您的應(yīng)用中的好處是否重要。
也就是說(shuō),您可以在應(yīng)用程序中測(cè)量最快速的查詢,因?yàn)樗鼈兛梢蕴幚泶罅繑?shù)據(jù),也可以非常頻繁地執(zhí)行。如果這些查詢從消除連接中受益,并且不使用varchar主鍵,那么就這樣做。
不要對(duì)數(shù)據(jù)庫(kù)中的所有表使用任一策略。在某些情況下,自然鍵可能更好,但在其他情況下,代理鍵更好。
其他人提出一個(gè)很好的觀點(diǎn),即在實(shí)踐中很少有自然鍵永遠(yuǎn)不會(huì)改變或有重復(fù),所以代理鍵通常是值得的。

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
這與表現(xiàn)無(wú)關(guān)。這是關(guān)于什么是一個(gè)好主鍵。隨著時(shí)間的推移,獨(dú)特而不變。您可能認(rèn)為諸如國(guó)家/地區(qū)代碼之類的實(shí)體從未隨時(shí)間而變化,并且是主鍵的良好候選者。但痛苦的經(jīng)歷是很少見到的。
INT AUTO_INCREMENT滿足“獨(dú)特且不變的時(shí)間”條件。因此偏好。
添加回答
舉報(bào)