0

我正在创建一个购物篮类,并希望产品具有不确定数量的选项,例如颜色、尺寸等。

我知道我应该使用多个表来存放选项数据,但不知道该怎么做。到目前为止,这是我的表结构。

CREATE TABLE IF NOT EXISTS options (
        ID varchar(40) PRIMARY KEY,
        Option int,
        Value varchar(100),
        Cost decimal(10,2)
        );

CREATE TABLE IF NOT EXISTS products (
        ID int PRIMARY KEY AUTO_INCREMENT,
        Title varchar(200),
        Description text,
        Specification text,
        Price decimal(10,2),
        CategoryID int,
        Weight int,
        OptionID int,
        Discount int(2),
        Featured boolean,
        Images text,
        Stock int,
        Related text,
        Offer boolean,
        OfferDetails text,
        Language int
        );
CREATE TABLE IF NOT EXISTS basket (
        `ID` int(11) PRIMARY KEY AUTO_INCREMENT,
        `ProductID` int(11),
        `Quantity` int(11),
        `OptionID` int(11),
        `Cookie` varchar(40)
        );

我想将所有选项存储在选项表中,并通过一个唯一 ID 将它们链接到产品。

我猜当用户选择一个选项时,我需要另一个表来存储信息。然后使用此表获取选择选项数据以输出到篮子

此外,我需要能够查看相同的产品,即相同的选项和 productID 是否已经在购物篮中,这样我就可以简单地更新数量而不是添加新行。

我可以通过使用大量的 for 循环和查询来做到这一点,但我真的想限制它。

对不起,如果不清楚。

提前致谢

4

1 回答 1

0

我假设您有另一张桌子供客户使用。这些选项适用于产品。您可以为每种产品提供一个或多个选项。这是一个多对一的关系。您可以为每个用户拥有多个产品,这也是多对一的关系。您可以(应该?)将这些关系分解。

该表(purchase以它为例)将包含与以下相对应的列(至少):

primary key,
customer ID,
product ID
amongst other things.

您最初可能会看到这个问题是可能有 0 个或多个选项。为此,您需要另一个表(optSel例如调用它)。这将具有对应于以下(至少)的列:

purchase table primary key, 
option id, 
and other things.

then when an option is chosen, it can be thrown in that optSeltable. 稍后可以通过连接轻松访问它。这将选项与用户和产品联系起来。当然,您可以将其拆分为不同的方式,这只是一种技术的一个示例。

于 2012-11-29T12:14:49.927 回答