0

我们有一个数据库,我们记录了一些产品在生产过程中的测试结果(记录日期时间、产品序列号和测试结果)。

包装产品时,我们每个盒子里有不止一件产品,现在我们想记录什么产品放在什么盒子里。

将添加一个 Box 表,其中包含 ID 和我们需要的任何其他列。一个 BoxID 列将添加到 Product 表中。那么我们有2个选择:

1) 使 BoxID 成为链接到 Box 表中 ID 列的外键。这有点难看,因为我们必须创建一个特殊的盒子(ID 为 0 或其他),它将包含所有现有产品,因为我们没有它们的信息,但需要一些 BoxID,因为它是外键。

2) 使 BoxID 可以为空并且不要使其成为外键。现有产品的 BoxID 将为 NULL,这是正确的,因为我们没有信息,但它有点难看,因为它没有强制新产品的参照完整性。

我们应该选择哪种解决方案?还是我们应该做点别的?

4

2 回答 2

1

我将有一个名为 Product_Box 的第三个(联结)表,它有一个 BoxId(FK 到 Box)和一个 ProductId(FK 到 Product)。

这意味着您的 Box 和 Product 表可以保存有关尚未在 Boxes 中的 Products 的信息,以及还没有任何 Products 的 Boxes 的信息。

将产品分配给 Box 时,您只需在新表中添加一个条目。

于 2012-12-13T12:40:09.910 回答
0

使用产品表并添加列(BoxID)Nullable和包含 BoxID 或不能有 boxID 的产品

于 2012-12-13T13:16:16.397 回答