2012-03-15 136 views
0

你好我设计一个数据库,想什么我到目前为止的一些反馈。我在数据库关系和规范化方面几乎没有经验,所以请随身携带。多色产品数据库模式

这里是要求: 每个产品都有多种颜色。 每个产品必须是在一定的范畴。 每个类别可以有一个子类别。

一个例子关系是

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条目也可以有多个图片。任何输入是受欢迎的。

回答

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个文本字段。 例如,你有3张图片SKU 1111:

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

其实只有“/ tmp目录/ image1111”已被存储,并通过添加“small.jpg”全路径将恢复,“med.jpg”和“lrg.jpg”到相应的路径。