一对多SQL设计

One to many SQL design

我是 MySQL 的新人,希望制作 table 的椅子。

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

如何设计一个"chair"table?

此外,按类别获取 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 是一个关系 数据库系统。您应该将数据建模为关系:

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

这直接导致三个tables:

  • chairs
  • categories
  • chairs_in_categories

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