0

製造中の一部の製品のテスト結果(日時、製品のシリアル番号、およびテスト結果の記録)を記録したデータベースがあります。

製品が梱包されると、ボックスごとに複数の製品があります。次に、どの製品がどのボックスに入っているかを記録します。

Boxテーブルには、IDとその他の必要な列が追加されます。BoxID列がProductテーブルに追加されます。次に、2つの選択肢があります。

1)BoxIDをテーブルBoxのID列にリンクされた外部キーにします。情報がないため、既存のすべての製品を含む特別なボックス(ID 0など)を作成する必要があるため、少し醜いですが、外部キーであるため、いくつかのBoxIDが必要です。

2)BoxIDをnull許容にし、外部キーにしないでください。BoxIDの既存の製品はNULLになります。これは、情報がないため正しいですが、新しい製品の参照整合性を強制していないため、少し醜いです。

どのソリューションを選択する必要がありますか?それとも何か他のことをすべきですか?

4

2 に答える 2

1

BoxId(FKからBox)とProductId(FKからProduct)を持つProduct_Boxという3番目の(ジャンクション)テーブルがあります。

つまり、BoxテーブルとProductテーブルには、まだBoxに含まれていない製品、およびまだ製品がないBoxに関する情報を保持できます。

製品がボックスに割り当てられると、新しいテーブルにエントリを配置するだけです。

于 2012-12-13T12:40:09.910 に答える
0

商品のテーブルを使用して、列(BoxID)Nullableと、BoxIDを含む、またはboxIDを持てない商品を追加します

于 2012-12-13T13:16:16.397 に答える