首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库父关系与子关系问题

数据库父关系与子关系问题
EN

Stack Overflow用户
提问于 2020-07-29 16:39:53
回答 1查看 52关注 0票数 0

我有多家商店的数据库。商店里有很多东西,比如衣服、食物、化妆品等等。所以对于每一种商品,它们都是一张桌子,上面摆着商店的细节。

:id,姓名,尺码,价格,颜色,item_id

:id,名称,类型,价格,紧急日期,item_id

化妆品:id、类型、价格、性别、item_id

项目:id、tag、store_id

商店: id,名称

这里的商品与服装、食品、化妆品等有OneToOne关系,商店与商品有OneToMany关系。

现在我只想为商店买衣服和食物之类的东西。但不知道怎么提问。现在,我正在考虑将一个枚举存储到像enum (食品,化妆品.)这样的桌子上。然后用连衣裙把衣服拿来,然后精打细算地去取食物。

在他们的任何方式改变数据库没有这一点,以便我可以查询更好的方式。数据库设计不好吗?这就是我面临问题的原因吗?有更好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-29 17:48:36

我认为,如果可以的话,你应该简化数据模型。

  1. Table:存储,包含存储id、名称、地址和任何其他您需要的
  2. Table: ItemType信息,包含项目类型id、项目代码、文本描述(基本上是可以出售的商品类型的标签列表)。为每种类型创建此表而不是新的表,将使存储区在以后添加新的项类型(
  3. table : Item )、包含主键id和以下外键(存储id、项类型id)以及所有标准信息时更容易。价格,商品名称,描述

然后,如果您想获得一个商店的项目,您可以选择*从其中的项目store_id (选择id从商店的名称= 'MyStore')。如果您想从一家商店获得所有化妆品,它是select *从store_id in的项目(选择id来自商店名称= 'MyStore')和itemType_id in (从ItemType选择id代码=‘化妆品’)

这将使项目目录更改后的维护变得更加容易,因为这意味着在添加新项之前,只需向ItemType添加一行。如果你增加了一家新商店,情况也是一样。

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

https://stackoverflow.com/questions/63158430

复制
相关文章

相似问题

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