我们有一个数据库,我们记录了一些产品在生产过程中的测试结果(记录日期时间、产品序列号和测试结果)。
包装产品时,我们每个盒子里有不止一件产品,现在我们想记录什么产品放在什么盒子里。
将添加一个 Box 表,其中包含 ID 和我们需要的任何其他列。一个 BoxID 列将添加到 Product 表中。那么我们有2个选择:
1) 使 BoxID 成为链接到 Box 表中 ID 列的外键。这有点难看,因为我们必须创建一个特殊的盒子(ID 为 0 或其他),它将包含所有现有产品,因为我们没有它们的信息,但需要一些 BoxID,因为它是外键。
2) 使 BoxID 可以为空并且不要使其成为外键。现有产品的 BoxID 将为 NULL,这是正确的,因为我们没有信息,但它有点难看,因为它没有强制新产品的参照完整性。
我们应该选择哪种解决方案?还是我们应该做点别的?