我正在为商店设计数据库。有一个商店分支表和一个链名表:
Chains
id name
1 Wendy's
2 Henry's
3 Other
Branches
id chain_id name
1 1 East Hollywood // Wendy's East Hollywood
2 1 NYC // Wendy's NYC
3 2 NYC // Henry's NYC
最后,我想展示“Wendy's NYC”和“Henry's East Hollywood”等内容。这是相当基本的东西。
我的问题是,我想要一个名为“其他”的连锁店,在那里我可以转储所有不足以提供自己类别的商店。如果一个连锁店只有几家商店,它会进入“其他”,这样类别清单就不会失控。但我仍然希望能够展示像“妈妈''Pops NYC”这样的东西。对于这样的事情,最好的数据库设计是什么?在代码而不是数据库中实现它更容易吗?感谢。
答案 0 :(得分:0)
目前,您将名称存储在链中以及分支中的位置。
你想要一个在Chains中没有名字的商店,但仍然有一个名字,因此你需要一个地方来存储这个名字。
有各种可能性:
第三个可能是最不实用的,但它们中的任何一个都可以工作。
答案 1 :(得分:0)
从建模角度来看,最好使Chain< - >两端的分支关系是可选的,而不是发明一个名为“其他”的伪链。映射可以通过将chain_id列声明为NULL来将其映射到数据库模式。您应该将表名从“Branch”更改为“Outlet”...因为拥有不存在的“链”的“分支”没有多大意义。