首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个名为"Other“类别的连锁商店数据库

一个名为"Other“类别的连锁商店数据库
EN

Stack Overflow用户
提问于 2011-07-06 20:55:20
回答 2查看 95关注 0票数 0

我正在为商店设计一个数据库。有一张表用于存储商店分店,还有一张表用于存储连锁店名称:

代码语言:javascript
运行
复制
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

最后,我想展示像“温迪的纽约”和“亨利的东好莱坞”这样的东西。这是相当基础的东西。

我的问题是,我想要一个名为"Other“的连锁店,在那里我可以抛弃所有数量不足以给出自己类别的商店。如果一家连锁店只有几家店铺,它会放在"Other“中,这样类别列表就不会失控。但我仍然希望能够显示像“妈妈和流行音乐纽约”这样的东西。对于这样的东西,最好的数据库设计是什么?在代码中实现这一点比在数据库中更容易吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-06 21:06:35

目前,您将名称存储在链中,将位置存储在分支中。

您想要一个连锁店中没有名称的商店类,但仍然有一个名称,因此您需要一个地方来存储该名称。

有多种可能性:

  • 你可以泛化你的‘链表’,这样它就不只是真正的连锁店了,而是每个店铺的名字。(然后,您可能需要另一个字段,该字段说明是否将条目视为真正的链。你可以让你的“分支”表存储非连锁店的名称和位置。
  • 你可以有第三个表来存储非连锁店的名称和位置。

第三个可能是最不有用的,但它们中的任何一个都可以工作。

票数 0
EN

Stack Overflow用户

发布于 2012-05-23 11:35:13

从建模的角度来看,最好是让Chain <->分支关系在两端都是可选的,而不是发明一个名为"Other“的假链。您可以通过将chain_id列声明为允许NULL来将其映射到数据库模式。您可能应该将表名从"Branch“更改为"Outlet”...因为拥有一个不存在的“链”的“分支”没有多大意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6596706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档