多色产品的数据库模式

时间:2012-03-15 17:18:58

标签: mysql database relationship product

你好我正在设计一个数据库,想要对我到目前为止所做的一些反馈。我在数据库关系和规范化方面经验不多,所以请光临我。

以下是要求: 每种产品都有多种颜色。 每种产品必须属于某一类别。 每个类别都可以有一个子类别。

示例关系

Eyes[Cat]
   EyeProduct[Product]
      Color1[color]
      ...
      ColorN[color]

Lips[Cat]
   Lipgloss[Subcat]
      CoolLipgloss[Product]
          Color1[color]
          ...
          ColorN[color]

到目前为止,这是我的数据库设计:

Categories
-id     (pk)
-subcat_id  (fk)
-name
-description
-active     (boolean)

Sub Category
-id         (pk)
-product_id     (fk)
-name
-description


Products
-id     (pk)
-name
-price
-weight
-descritpion
-ingredients
-product_img
-active     (boolean)

SKU
-sku    (pk)
-product_id     (fk)
-name
-image_small
-image_med
-image_Lrg
-active     (boolean)

实现图像表是否是个好主意。此表将包含对每个SKU(颜色)和任何额外产品图像使用的所有图像的引用。我认为这更有意义,因为每个sku条目也可以有多个图片。欢迎任何意见。

1 个答案:

答案 0 :(得分:0)

看起来不错。关于人际关系(fk)的几点注释,我认为应该改变它们:

Categories
-id     (pk)
-name
-description
-active     (boolean)

Sub Category
-id         (pk)
-category_id     (fk)
-name
-description


Products
-id     (pk)
-subcategory_id     (fk)
-name
-price
-weight
-descritpion
-ingredients
-product_img
-active     (boolean)

SKU
-sku    (pk)
-product_id     (fk)
-name
-image_small
-image_med
-image_Lrg
-active     (boolean)

顺便说一句。您可以使用图像的部分路径,这将为您节省2个文本字段。 例如,sku 1111有3张图片:

/tmp/image1111small.jpg
/tmp/image1111med.jpg
/tmp/image1111lrg.jpg

实际上只需存储“/ tmp / image1111”,并通过将“small.jpg”,“med.jpg”和“lrg.jpg”相应地添加到路径中来恢复完整路径。