我们有一个数据库,我们在生产过程中记录了某些产品的测试结果(记录日期时间,产品序列号和测试结果)。
当产品包装好时,我们每盒有多个产品,现在我们想要记录什么产品在哪个盒子里。
将添加一个Box表,其中包含我们需要的ID和其他任何列。 BoxID列将添加到Product表中。然后我们有两个选择:
1)使BoxID成为链接到表格框中ID列的外键。它有点难看,因为我们必须创建一个包含所有现有产品的特殊盒子(ID 0或其他),因为我们没有它们的信息,但是因为它是外键所以需要一些BoxID。 / p>
2)使BoxID可以为空,不要使它成为外键。 BoxID的现有产品将为NULL,因为我们没有这些信息,但它有点难看,因为它没有强制新产品的参照完整性。
我们应该选择哪种解决方案?或者我们应该做些什么呢?
答案 0 :(得分:1)
我会有一个名为Product_Box的第三个(联结)表,它有一个BoxId(FK到Box)和一个ProductId(FK到Product)。
这意味着您的Box和Product表可以保存有关尚未装箱的产品的信息,以及尚未拥有任何产品的Box。
将产品分配给Box时,只需在新表中添加一个条目即可。
答案 1 :(得分:0)
为产品使用表格并添加列(BoxID)Nullable
以及包含BoxID或不能包含boxID的产品