【发布时间】:2011-11-15 03:25:47
【问题描述】:
我正在开发一家在线珠宝店网站。其中一个请求是,可以从后端为单件珠宝选择一种/多种颜色,以便用户能够仅对例如绿色的物品进行分类/查看。
将其存储在数据库中的最佳方式是什么?是否应该使用 3 个表来完成:
- 产品表(已存在)
- 颜色表:每个字段都有颜色
- 与产品匹配的表格带有颜色 id
这是正确的方法吗?我正在使用 php 和 mysql,但我认为这只是一个非常标准的数据库问题。
【问题讨论】:
-
对我来说听起来很合理。
-
恕我直言,由于颜色(纯色)是有限且已知的,
color应该是product的属性。随意添加颜色的选项会导致问题,例如紫色(紫色、紫红色、茄子色等)有 20 多种色调,并使简单的查询变得复杂。 -
@Ben 我不太同意这一点。拥有标准的 N-M 关系不会使查询变得那么复杂
-
@Marcus 我不是因为n-m关系才说的,我说是因为假设你要列出所有紫色钻石,你怎么知道紫红色和茄子也是紫色的?跨度>
-
@Ben Ah,就是这样。但是您也可以限制颜色表中的颜色以实现相同的目标。如果有很多不同的口味,可以选择颜色所属的组。