首頁 > 資料庫 > mysql教程 > 關係資料庫表應該使用自增作為主鍵嗎?

關係資料庫表應該使用自增作為主鍵嗎?

DDD
發布: 2025-01-06 07:39:40
原創
736 人瀏覽過

Should I Use Auto-Increments as Primary Keys in Relational Database Tables?

SQL:建立具有2 個不同Auto_increments 的關係表

了解Auto_Increment 和關係表

了解Auto_Increment 和關係表

了解Auto_Increment 和關係表

在真正的關係表中,宣告為主列的列key不會自動成為自增 ID。
  • 關係表中避免使用Auto_Increment 作為主鍵的原因:
  • 非唯一:
  • 自增ID 並不能保證行唯一性。
  • 冗餘:自動遞增 ID 是沒有任何用途的附加資料。
令人困惑

期望:處理自動遞增ID 作為主鍵會導致對行唯一性和數據的錯誤假設

  1. 建立不帶Auto_Increments的關係表
  2. 定義複合主鍵:
  3. 建立由以下組成的主鍵構成每個的唯一識別碼的欄位
  4. 刪除不必要的ID 欄位:
  5. 如果現有ID 欄位已宣告為主鍵,請將其刪除並提升複合主鍵。

確保行唯一性:宣告複合主鍵的唯一約束以防止重複rows。

  • 關係表的好處:
  • 強制行唯一性以確保資料完整性。

促進基於連接和查詢在主鍵上。 透過最佳化資料來提高效能

CREATE TABLE user (
    user_name VARCHAR(30) NOT NULL,
    name_first VARCHAR(30) NOT NULL,
    name_last VARCHAR(30) NOT NULL,
    PRIMARY KEY (user_name, name_first, name_last)
);
登入後複製
範例:

考慮以下關係表結構:在🎜>在🎜>在此範例中,主鍵由三列,確保每筆記錄代表一個唯一的使用者。沒有自動遞增的 ID 列可確保表保持行的唯一性,而不會產生不必要的開銷。

以上是關係資料庫表應該使用自增作為主鍵嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板