你好我正在设计一个数据库,想要对我到目前为止所做的一些反馈。我在数据库关系和规范化方面经验不多,所以请光临我。
以下是要求: 每种产品都有多种颜色。 每种产品必须属于某一类别。 每个类别都可以有一个子类别。
示例关系
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 :(得分: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”相应地添加到路径中来恢复完整路径。