0
作爲一個常見的約定,我問,因爲我不完全確定;數據庫設計欄命名約定;主要和外鍵
正常列名命名; id_ * referes到pk's和* id到fk's? 因此,多個ID *會暗示id_ *形成一個多列pk?
作爲一個常見的約定,我問,因爲我不完全確定;數據庫設計欄命名約定;主要和外鍵
正常列名命名; id_ * referes到pk's和* id到fk's? 因此,多個ID *會暗示id_ *形成一個多列pk?
一個名爲FOO_BAR_ID
的字段會向我建議某種橋接或映射表,而不是與我認爲您建議的複合主鍵的關係,下面是我如何傾向於命名字段的演示我避免使用複合主鍵,因爲他們打破第二範式和tbh我從來沒有見過使用它們的合理理由
+ a normal table
-----------------------------------------------------
| DEPARTMENT_SID | NAME | DESCRIPTION | ADDRESS_SID |
-----------------------------------------------------
^pk ^fk
+ another normal table
--------------------------------------------------
| ADDRESS_SID | NUMBER | STREET | TOWN | POSTCODE |
--------------------------------------------------
^pk
+ yet another normal table
-----------------------------------------------------------------------
| EMPLOYEE_SID | FIRST_NAME | LAST_NAME | DATE_OF_BIRTH | ADDRESS_SID |
-----------------------------------------------------------------------
^pk ^fk
+ bridge table as an employee can belong to many departments
+ uses a composite key rather then defining a single primary key
---------------------------------
! EMPLOYEE_SID ! DEPARTMENT_SID |
---------------------------------
^cpk/fk ^cpk/fk
+ bridge table defining a single primary key
-----------------------------------------------------------
| EMPLOYEE_DEPARTMENT_SID ! EMPLOYEE_SID | DEPARTMENT_SID |
-----------------------------------------------------------
^pk ^fk ^fk
+ a table with a foreign key to the bridge table
------------------------------------------------------
! SHIFT_SID | EMPLOYEE_DEPARTMENT_SID | HOURS_WORKED |
------------------------------------------------------
^pk ^fk
pk = PRIMARY KEY, fk = FOREIGN KEY, cpk = COMPOSITE PRIMARY KEY