如何创建多个一对一的我有一个设置了许多表的数据库,除了一点之外它看起来都很好......Inventory Table <*-----1> Storage Table <1-----1> Van Table
^
1
|-------1> Warehouse Table由于Van和Warehouse表相似,因此使用了Storage表,但如何在Storage和Warehouse / Van表之间创建关系?因为存储对象只能是1个存储位置和类型,所以它们需要为1比1。我确实有Van / Warehouse表链接到StorageId主键,然后添加一个约束,以确保Van和Warehouse表没有相同的StorageId,但这似乎可以做得更好。我可以看到这样做的几种方法,但它们都显得不对,所以任何帮助都会很好!
3 回答
慕少森
TA贡献2019条经验 获得超9个赞
如你所说,有很多解决方案。我建议从最简单的解决方案开始,然后在性能或存储成为问题时进行优化。最简单的解决方案(但在存储方面不是最佳的)是使存储表具有存储类型的列(指示行是代表货车还是仓库),还有Van属性列和Warehouse属性。在表示Van的行中,Warehouse属性的列都将为null。在表示Warehouse的行中,Van属性的列都将为null。
这样,您减少了表的数量,并使您的查询保持简洁。如果存储变得紧张,请准备好重新审视您的决定。
添加回答
举报
0/150
提交
取消