如何创建多个一对一的

如何创建多个一对一的

我有一个设置了许多表的数据库,除了一点之外它看起来都很好......

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,但这似乎可以做得更好。

我可以看到这样做的几种方法,但它们都显得不对,所以任何帮助都会很好!


小怪兽爱吃肉
浏览 497回答 3
3回答

慕少森

如你所说,有很多解决方案。我建议从最简单的解决方案开始,然后在性能或存储成为问题时进行优化。最简单的解决方案(但在存储方面不是最佳的)是使存储表具有存储类型的列(指示行是代表货车还是仓库),还有Van属性列和Warehouse属性。在表示Van的行中,Warehouse属性的列都将为null。在表示Warehouse的行中,Van属性的列都将为null。这样,您减少了表的数量,并使您的查询保持简洁。如果存储变得紧张,请准备好重新审视您的决定。

慕婉清6462132

在某种程度上,在我看来,库存物品可能会改变位置,所以我会选择这样的东西。
打开App,查看更多内容
随时随地看视频慕课网APP