在資料庫設計領域,多對多關係提出了一個問題:應該映射表的主鍵可以是相關表中外鍵的組合,或是自動遞增的代理項鍵?
根據反對代理鍵的論點,建立複合主鍵(PartID、DeviceID)要求實體磁碟依該順序排序。在現有條目 (Part1/Device1) 和 (Part2/Device3) 之間插入新記錄 (Part1/Device3) 需要大量資料改組,這對於大型表來說會出現問題。
複合主鍵的支持者駁回了這些擔憂,聲稱:
對於兩列多對多重映射,在複合鍵和代理鍵之間進行選擇對效能的影響很小。然而,對於更複雜的映射或繁重的插入工作負載,代理鍵可能會提供一些優勢,例如:
在大多數情況下,多對多表的複合鍵和代理鍵之間的選擇是一個偏好問題。對於簡單的兩列映射,複合主鍵提供了簡單性和唯一性。然而,對於複雜的映射或高插入工作負載,代理鍵可以提供更好的效能和資料完整性。
以上是多對多表的複合主鍵或代理主鍵:哪個效能較好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!