mysql - 数据库设计,创建其他表,或添加类别字段?

标签 mysql database-design

我这里有一个名为size的表,如下所示:

size id | size name 
   1            S
   2            M
   3            L
   4            XL

但是当我发现尺寸必须有任何类别时,我很困惑,我的意思是像 cloth_sizepant_sizesheets_size 之类的东西。那会有所不同。行将为 6XL5XL4XL。我想我应该将表 sheets_size 装箱如下:

size id size name 
1            S
2            M
3            L
4            XL
5            XXL

或者我应该创建表类别,例如:

category_id category_name
1              cloth
2              dress
3              pants
4              sheets

表格大小:

size id | size name   | category
1            S              1
2            M              1
3            L              1
4            XL             1  
5            XXL            4

哪个更好?

最佳答案

我相信最好和最简单的方法是有一个包含所有类别的表格,就像您所描述的那样:

category_id  |   category_name
    1        |      cloth
    2        |      dress
    3        |      pants
    4        |      sheets

然后有一个包含所有尺寸(从 S 到 6XL)的 table

   size id   |   size name 
      1      |       S
      2      |       M
     ...     |      ...
      10     |      6XL

这两个表将处于多对多关系,因为一个类别可以有多个尺寸,而一个尺寸可以属于多个类别。这意味着您将需要第三个表来保存每个表的主键。

   category_id   |   size_id
        1        |      1
        1        |      2
       ...       |     ...

这基本上相当于类别 1,尺寸为 1 和 2,就像布料的尺寸为 S 和 M 一样。

关于mysql - 数据库设计,创建其他表,或添加类别字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11202755/

相关文章:

mysql - sql查询-如何根据时间避免 "virtually"重复记录

来自 Objective-C iPhone 应用程序的 PHP MySQL 请求未发布到我的表

MySQL过滤每个项目最后一个用户的第一个日期

定期分布数据的 Azure 表存储分区

mongodb - MongoDB中的有向无环图设计模式

sql - 多少个外键太多了?

php - MySQL SHA() 不起作用

php - 多个离线网页同步

sql - 设计可以引用多个其他表的数据库表

mysql - 按照 Sharetribe 安装说明进行操作并收到错误 "ERROR 1064 (42000): You have an error in your SQL syntax;"