私が言うには、それは逆です。まず、必要なオブジェクトの種類を設計します。それらのためにテーブルを作成します。
このフェーズの一部は、オブジェクトを一意に識別する属性 (列) の組み合わせであるキーの設計です。便宜上またはパフォーマンス上の理由から、人工キーまたは代理キーを追加する場合と追加しない場合があります。通常、これらのキーから 1 つの正規キー (主キー) を選択します。これは、そのテーブル内のオブジェクトを識別するために一貫して使用しようとします (他のキーも保持します。それらはビジネス ルールとしての単一性を確保するのに役立ちますが、識別のためではありません)。目的。)
次に、オブジェクト間にどのような関係が存在するかを考えます。別のオブジェクトによって「所有」されているオブジェクト、または別のオブジェクトを参照するオブジェクトには、関連するオブジェクトを識別する何らかの方法が必要です。対応するテーブル (子テーブル) に列を追加して、参照されるテーブルの主キーを指す外部キーを作成します。
これにより、すべての 1 対多の関係が処理されます。
場合によっては、オブジェクトが別のオブジェクトに複数回関連付けられることがあります。たとえば、1 つの注文を使用して複数の製品を注文できますが、1 つの製品を複数の注文に表示することもできます。これらの関係については、別のテーブル (交差テーブル - この例では order_items) を設計します。このテーブルには、2 つの外部キーから作成された一意のキーがあります。ここでも、これらの外部キーを作成するために必要な交差テーブルに列を追加します。
つまり、最初にキーと外部キーを設計してから、それらを実装するための列を追加し始めます。