あなたはオプション性とアイデンティティの間のつながりを考えすぎています。すべてがより自然に理解できるようになるまでは、それらを完全に無関係であると考えるのが最善です。 。
オプション性については、オプション性が方向性を持っていることを覚えておくことが重要です。 employee_equipment
の例を使用するには :確かに、従業員は機器を必要としません。 employee
からの1対多の関係 employee_equipment
へ オプションです。同時に、反対の視点から見ると、関係は必須です。 employee_equipment
にレコードを含めることはできません employee
がいない限り 関連付ける。
アイデンティティは、偶然を除いて、オプション性とは何の関係もありません。 子から親への識別関係は必須です。親から子への義務でもあるかどうかは、アイデンティティに関する限り、ここにもそこにもありません。
関係を特定するのは、あなたが話している子供を知るために、あなたが話している親(および他のいくつかのこと)を知る必要があるということです。つまり、子の主キーには、親への外部キーが含まれている必要があります。
純粋な交差テーブル(例:employee_equipment
)はこの良い例です。純粋な交差の主キーは、両方の親テーブルへの外部キーの組み合わせです。これらの種類のテーブルに代理キーを追加する人もいることに注意してください。複数の候補キーがある場合、IDの観点からはそれほど重要ではありません。 IDを決定する上で重要なのは、外部キーが候補キーの一部であるかどうか、その候補キーがたまたま主キーであるかどうかです。
もう1つの良い例は、データベースのメタデータカタログのようなものです。このカタログでは、テーブルが属するスキーマによって識別されるのと同じように、列が属するテーブルによって識別されます。列がNAME
と呼ばれることを知っている それがどの列であるかはわかりません。それがNAME
であることを知っている CUSTOMER
の列 テーブルが役立ちます。 (また、どのスキーマCUSTOMER
を知っている必要があります である、など)。