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

时间:2012-06-26 07:40:24

标签: 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,如:

category_id category_name
1              cloth
2              dress
3              pants
4              sheets

size

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

哪一个更好?

1 个答案:

答案 0 :(得分:2)

我认为最好和最简单的方法是拥有一个包含所有类别的表格,如您所描述的那样:

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

然后有一张包含所有尺寸的表格(从S到6XL)

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

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

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

这基本上转换为类别1,尺寸为1和2,布料的尺寸为S和M.