【问题标题】:One to many SQL design一对多 SQL 设计
【发布时间】:2020-04-15 15:21:21
【问题描述】:

我是 MySQL 新手,想制作一张椅子。

每把椅子都可以分为几个类别,但我意识到 SQL 是一个单一的数据列结构。

如何设计一张“椅子”桌子?

另外,按类别获取chair_id 的查询是什么样的?

有 18 个不同的类别。

例如,

chair_id = 1 , categories = 'living room', 'kitchen', 'garden'
chair_id = 2 , categories = 'kitchen', 'garden'
chair_id = 3 , categories = 'garden'

Fetch where category='kitchen' || 'living room' => chair_id = 1,2

【问题讨论】:

标签: mysql database-design


【解决方案1】:

MySQL 是一个关系数据库系统。您应该将数据建模为关系:

  • 有椅子
  • 有类别
  • 每把椅子都可以属于任意数量的类别
  • 每个类别都可以包含任意数量的椅子

这直接导致三个表

  • chairs
  • categories
  • chairs_in_categories

第三个表只有两列,第一列引用椅子的 ID,第二列引用类别的 ID。此表中的条目表示椅子属于某个类别。

【讨论】:

  • 谢谢。 “chairs_in_categories”中的Chair_ID是“chairs”的外键吗?
  • 是的,chair_id 是一个引用 chair(id) 的 FK。
  • 索引多:多表的技巧:mysql.rjweb.org/doc.php/…
猜你喜欢
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
  • 2013-05-27
  • 2012-11-11
  • 2018-10-20
  • 1970-01-01
相关资源
最近更新 更多