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