好的,所以我现在正在为“Box Items”制作一张表格。
现在,一个盒子项目,取决于它的用途/项目的状态,最终可能与“运输”盒子或“退货”盒子相关。
Box Item 可能有缺陷:如果是,则会在 Box Item 的行中设置一个标志 (IsDefective),并且 Box Item 将被放入“Returns”框中(与其他物品一起退回给该供应商)。否则,Box Item 最终将被放入“Shipping”盒子(与其他要运送的物品一起)。(请注意,运输和退货箱有自己的表格:所有箱子都没有一个公用表格......尽管如果可能的话,我应该考虑这样做作为第三种可能性?)
也许我今天只是想不清楚,但我开始质疑在这种情况下应该怎么做。
我的直觉告诉我,我应该为每个可能的关系设置一个单独的字段,即使在任何给定时间只能发生其中一个关系,这将使 Box Items 的架构看起来像:
BoxItemID 描述 IsDefective ShippingBoxID ReturnBoxID 等...
这将使关系变得清晰,但似乎很浪费(因为任何时候都只会使用其中一个关系)。所以我想我可以只有一个 BoxID 字段,并根据 IsDefective 字段确定它指的是哪个 BoxID(运输或退货箱 ID):
BoxItemID 描述 IsDefective BoxID 等...
这似乎不那么浪费,但不适合我。关系不明显。
所以,我把它交给你,Stackoverflow 的数据库专家。在这个情况下,你会怎么做?
编辑:谢谢大家的意见!它给了我很多思考。一方面,下次我开始这样的项目时,我将使用 ORM。=)两个,因为我现在不在,我会咬四个字节并使用两个字段。
再次感谢大家!