gpt4 book ai didi

mysql - 如何在数据库中存储多个产品的 'packages'

转载 作者:搜寻专家 更新时间:2023-10-30 23:18:01 24 4
gpt4 key购买 nike

我有一个提供电子商务服务的网站,基本上允许该行业的卖家将他们的产品出售给客户。卖家选择他们希望销售的产品并设定价格。然后他们就可以放手了。

在简化形式中,我的数据库中有以下相关表用于存储产品和订单信息:

Product_Info
--------------------
ID (autonumber)
name
...


Order_Head
--------------------
ID (autonumber)
CustomerID
...


Order_Line
--------------------
ID (autonumber)
OrderHeadID
ProductID
...

这非常适用于客户选择任意数量的产品并将其添加到购物车的简化订单。然而,我现在面临着添加卖家创建和管理的“套餐”的问题,其中卖家可以将多个产品组合成一个项目,并以低于单个项目一起成本的价格出售。例如,如果橙子售价 15 美元,苹果售价 20 美元,那么包含 2 个橙子和 1 个苹果的包裹可能只需 35 美元。

现在让我陷入困境的是,我非常希望包能够包含其他包。例如,卖家可以制作包含 3 个橙子的“什锦橙子”包装。然后他们可以制作一个“什锦水果”包,其中包含 2 个苹果和 1 个“什锦橙子”。

当我可以从产品表或包裹表中引用 ID 时如何管理包裹中的产品,以及如何在 order_line 表中记录产品,这让我感到困惑productID 可以指向产品或包裹。当然,这需要以高效的方式设计,这样我们就不会不必要地加重数据库服务器的负担。

我主要是一名网络开发人员,之前在电子商务方面的工作不多。任何人都可以提供一些关于一组适当的表和表修改以应用于数据库的指导吗?我不知道为什么,因为它似乎不应该那么复杂,但这个让我卡住了。

作为引用,我使用的是 MySQL 5.1,连接到 ColdFusion MX 7(即将成为 9)。

编辑:

感谢您到目前为止的回复。我会花一点时间进一步考虑它们。与此同时,我想澄清一下订单流程是如何运作的,因为它似乎比我原先假设的更相关。

我的产品与 Shutterfly 类似。摄影师张贴照片,客户可以购买打印品。摄影师需要工具来设置所有定价,如果是专业拍摄,他们通常会提供套餐。履行由我的产品自动向其提交订单的实验室完成,但他们不了解定价、包装等。

摄影师还可以选择运行特价商品,为客户提供 x% 的折扣或 BOGO 交易,但我可以单独处理。目前,我更关心的是一种有效且简单的方式来存储摄影师定义的包裹、客户在购物时为包裹中的每个产品选择的图像(当前存储在 order_line 镜像表中)以及最终的订单详细信息,以便可以快速轻松地查询它们以进行显示和报告。

最佳答案

创建一个额外的表,其中列出了每个包的成员项目,以及包中包含的数量。

Package_Items

CREATE TABLE Package_Items (
package_id INT NOT NULL
item_id INT NOT NULL,
item_quantity INT NOT NULL DEFAULT 1,
FOREIGN KEY (package_id) REFERENCES Product_Info (ID),
FOREIGN KEY (item_id) REFERENCES Product_Info (ID)
PRIMARY KEY (package_id, item_id)
);

package_id 列引用 Product_Info 中的行,这是主要的包裹项目。 item_id 指的是作为包成员的其他项目。可以有多个 package_id, item_id 组合。

使用此方法,您可以在 Product_Info 中创建代表包的新行。将项目添加到包中所需要做的就是在 Package_Items 中添加相应的行。如果添加到 Package_Items 的行恰好也是包产品本身,则无需执行额外的工作。

注意不要给自己添加包。

关于mysql - 如何在数据库中存储多个产品的 'packages',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10516614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com