2012-01-26 12 views

答えて

1

フィールド名がFOO_BAR_IDの場合、ブリッジやマップテーブルのようなものがありますが、あなたが提案していると思われる複合主キーとの関係ではありません。以下に、フィールドの名前付け方法のデモンストレーションです私はコンポジットプライマリキーの使用を避けます。なぜなら、それらは2番目の正規形と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