首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MySQL 關聯關係:一對一、一對多、多對多 設計精要

     編輯:程式設計綜合問答

資料庫設計三大關聯關係的外鍵實作方式:

一對一 (1:1)

  • 從表主鍵同時是外鍵參照主表主鍵。
  • 範例:User(id PK)、UserProfile(user_id PK, FK→User.id)。
  • 適用:將常用欄位與少用/敏感欄位拆分,或擴充第三方表。

一對多 (1:N)

  • 多方表加外鍵欄位參照一方主鍵。
  • 範例:Department(id PK)、Employee(dept_id FK→Department.id)。
  • 最常見,如 訂單-明細、部門-員工、文章-評論。

多對多 (M:N)

  • 需建立 中間關聯表,兩個外鍵組成複合主鍵。
  • 範例:Student(id PK)、Course(id PK)、StudentCourse(student_id FK, course_id FK, PK(student_id,course_id))。
  • 中間表可加屬性(如 選課日期、成績)。

ER 圖標記

  • 1:1 ──◇──◇
  • 1:N ──◇──┤
  • M:N ──┤◇──┤ (中間菱形)

設計原則:業務語義決定關聯,外鍵保證參考完整性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved