数据库
首页 > 数据库> > mysql – 数据库设计:与汽车模型或装饰有关?

mysql – 数据库设计:与汽车模型或装饰有关?

作者:互联网

我正在重新问一个以前在SO中删除的问题,因为它不是一个“编程问题”.希望这比最后一篇文章更“编程”.

首先,一些定义:

>型号 – 2011日产Sentra
> trim – 2011 Nissan Sentra LX

通常,特定车辆将具有例如可用颜色或设备选项的列表.所以2011款日产Sentra可能会有以下几种颜色:

>黑色
>白色
>红色

然后,制造商可能会为2011款日产Sentra LX装饰提供特殊颜色:

>粉红色与黄色波尔卡圆点

如果我正在建立一个汽车网站,我想抓住这些信息,我应该做以下哪些事情:

>将颜色与模型相关联?
>将颜色与修剪相关联?
>将颜色与模型相关联并修剪?

我的直觉是将它与模型相关联就足够了.与修剪相关联意味着重复(例如2011年日产Sentra LX和2011年日产Sentre SE都将“黑色”作为颜色).试图将颜色与模型和修剪相关联可能有点过分.

建议?

解决方法:

如果有特殊情况,正如你所说的那样,制造商已经为特定装饰制作了一种特殊颜色,例如“2011年日产Sentra LX装饰”的“Pink with Yellow Polka Dots”

并且您希望存储这些特殊情况,您应该选择第二个选项.

所以,你的关系将是:

1个制造商生产许多型号

1个型号有很多装饰

1个装饰可以有很多颜色,1种颜色可以有许多装饰
(所以你需要一个这种关系的关联表)

Manufacturer
    1\
      \
       \N
     Model
       1\
         \
          \N
         Trim          Colour
           1\           1/
             \          /
              \N       /M
              TrimColour

有关颜色的其他信息:

一个GeneralColour可以被不同的制造商命名为多种颜色
一个制造商可以用各种颜色(名称)“给”一个GeneralColour“施洗”

        Manufacturer         
         1/      1\           
         /         \         
        /N          \        
     Model           \     GeneralColour
       1\             \       1/
         \             \      /
          \N            \N   /M
         Trim           Colour
           1\           1/
             \          /
              \N       /M
              TrimColour

更清楚地思考,不需要额外的制造商 – 颜色关系:

Manufacturer
    1\
      \
       \N               
     Model                 GeneralColour
       1\                     1/
         \                    /
          \N                 /M
         Trim           Colour
           1\           1/
             \          /
              \N       /M
              TrimColour

标签:mysql,database,database-design,data-modeling
来源: https://codeday.me/bug/20190614/1236539.html