有许多不同的答案可以满足不同的在线商店需求。
我看到的很多例子没有考虑**库存和图像**,并将样式和尺寸视为标签等属性,并尝试灵活。这对我来说似乎不对。我的产品有很多样式/颜色,有多种尺寸。
以下是我想要布局的方法
Product
id | name | price
1 | shirt | 10.00
^ Styles < Images
id product_id name id styles_id filename
1 1 red 1 1 image.jpg
2 1 blue
^ Size
id sku styles_id name inventory
1 n1 1 m 50
2 n2 1 l 50
我没有看到很多这方面的例子,但这对我来说最有意义。这样做我完全错了,不好吗?对于具有自己的表格的样式,我可以使用带图像的FK来加载每种样式的不同外观
我知道一个缺陷就是如果我的产品只有一种款式和一种尺寸。像冬天的外套。然后我要使用额外的表格。通过PHP可视化,我将只使用一个表单。当我开始处理购物车和订单时,我会遇到问题吗?
注意:我正在使用CakePHP
对父子方法的回应
是的我之前看过,你不会有重复的字段或空字段,例如你的表格看起来像这样吗
id role color size inventory price name
1 parent - - - - artShirt
2 child red m 20 50.00 -
3 child red l 20 50.00 -
4 child blue s 20 50.00 -
5 child blue m 20 50.00 -
如何将img链接到红色产品?
id product_id image
1 2 redImg.jpg
1 3 redImg.jpg
答案 0 :(得分:0)
我真正喜欢的概念叫做父产品 - 儿童产品。 父产品有一个sku供参考,但它不是可购买的产品。它代表了产品,如ArtSir衬衫。它包含ArtSir Shirt的产品描述,质量,关键字等。
儿童产品是实际可购买的产品。衬衫。每个儿童产品有一个记录,包括sku,颜色,大小,价格,重量,库存等,它们与父产品sku的父产品相关。对于大多数商家而言,库存是至关重要的,因此每个sku拥有一个db记录实际上是唯一可行的方法。 (更不用说你是否需要不同的UPC或EAN代码)父产品和子产品都可以在一个简单的快乐数据库表中。喜欢一个家庭:-)你用它的sku调用父产品,然后用父产品sku获得子产品。
然后当您获得子产品时,您可以选择过滤掉没有库存的产品而不显示它们。
在产品页面上显示特定颜色的产品图片 - 因此这与可购买的产品无关。这是演示文稿。最简单的(黑客)是将该信息放在父产品记录中。颜色1,照片链接,颜色2,照片链接等字段
否则,您可以使用单独的db表来执行此操作。试着将其任务限制在演示文稿中。
始终将产品ID传递给购物车 - 然后购物车在产品表中查找产品价格。如果您公开通过产品价格,那么它很容易被黑客入侵。查看价格时,您还可以确认库存。
建议在结算前有一步 - 再次检查价格和库存以确认一切正确后再向客户收费。
==============
编辑以回答问题。您询问: “你不会有重复的字段或空字段,例如你的表格看起来像这样”
是的,你会有空字段。在1985年或1995年这是重要的。它不再重要,除非你在那个时代的机器上运行你的网站。
底线你必须能够查找sku并获得价格和库存。您可以将数组或数据结构放入字段中。 但是每次进行数据库调用时都需要打包和解压缩它们。
如何将img链接到红色的产品?
你可以通过为父产品创建字段来保存图像链接,颜色参考,名称等color01,photolink01,color02,photolink02等等,这是一个黑客但它会起作用。
请记住,您正在从父产品中提取所有页面显示信息。所以这只是更多的显示数据。
您还可以选择在子产品记录中添加照片字段。您可能需要产品Feed。那么你可以从儿童产品中获取颜色 - 照片结果,并使用它来创建显示。
否则为显示创建一个db表。该表还可以帮助上传产品照片并将其分配到正确的产品。