有许多不同的答案可以满足不同的在线商店需求。
我看到的很多示例都没有考虑**库存和图像**,而是将样式和尺寸视为标签等属性,并尽量保持灵 active 。这对我来说似乎是错误的。我的产品有多种款式/颜色有多种尺寸。
这是我想要的布局方式
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
最佳答案
我真正喜欢的概念称为父产品 - 子产品。 父产品有一个 sku 供引用,但它不是可购买的产品。它代表产品,例如 ArtSir 衬衫。它包含 ArtSir 衬衫的产品描述、品质、关键字等。
子产品是实际可购买的产品。衬衫。每个子产品都有一条记录,其中包含 sku、颜色、尺寸、价格、重量、库存等。它们通过父产品 sku 与父产品相关联。对于大多数商家来说,库存是至关重要的,因此每个 sku 都有一个数据库记录确实是唯一可行的方法。 (更不用说您是否需要不同的 UPC 或 EAN 代码)
父产品和子产品都可以在一个简单的快乐数据库表中。就像一个家庭 :-) 你用它的 sku 调用父产品,然后用父产品 sku 获取子产品。
然后当您获得子产品时,您可以选择过滤掉没有库存的产品而不显示它们。
在特定颜色的产品页面上显示产品图片——因此这与产品是否可购买无关。这是介绍。最简单的(hack)是将该信息放入父产品记录中。颜色 1、照片链接、颜色 2、照片链接等字段
否则,您可以使用单独的数据库表来执行此操作。只需尝试将其任务限制在演示文稿中即可。
始终将产品 ID 传递给购物车 - 然后购物车在产品表中查找产品价格。如果您公开传递产品价格,则很容易被黑客入侵。当您查询价格时,您还可以确认库存。
建议在开票前有一个步骤 - 在向客户收费之前再次检查价格和库存以确认一切正确。
==============
针对问题进行编辑。你问: “你不会有重复字段或空字段吗,例如你的表看起来像这样”
是的,您将有空字段。在 1985 年或 1995 年,这很重要。它不再重要,除非你在那个时代的机器上运行你的网站。
最重要的是,您必须能够查找 sku 并获得价格和库存。您可以将数组或数据结构放入字段中。 但是每次进行数据库调用时,您都必须打包和解包它们。
您如何将 img 链接到红色产品?
您可以通过为父产品创建字段来保存图像链接、颜色引用、名称等来破解它。color01、photolink01、color02、photolink02 等。这是一个 hack,但它会起作用。
请记住,您正在从父产品中提取所有页面显示信息。所以这只是更多的显示数据。
您还可以选择在子产品记录中添加照片字段。您可能需要用于产品 Feed。这样您就可以从子产品中获取彩色照片结果,并使用它来创建显示。
否则为显示创建一个数据库表。该表还可以帮助上传产品照片并将它们分配给正确的产品。
关于php - 建模产品库存变体电子商务与图像 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027646/