如何为产品类别设置SQL表结构?

时间:2015-10-23 15:20:18

标签: php mysql sql

我对SQL很陌生,我目前正在尝试在PHP和MySql中创建一个简单的产品页面。现在我有一个products表,其中包含我的产品idnamepricestock

编辑:示例products表格:

|----------------------------------------------------------------|
|    id    |         name        |       price    |     stock    |
|----------------------------------------------------------------|
|     1    |    Guess T-Shirt    |       10       |      100     |
|----------------------------------------------------------------|

我想要做的就是为产品设置不同的类别,这样每个产品都可以分为多个类别。

以下是每种产品的选项:

enter image description here

现在如您所见,每个子类别都有不同的类别。

首先想到的是,我想从我的id表中获得一个包含所有这些类别的表作为行和products的外键。我意识到这不是最好的方法,但我也不知道什么是正确的方法。

如果问题可能无关紧要,我会提前道歉。我没有任何代码可以展示,我只需要对正确的数据库结构进行一些输入。

如果您需要更多详细信息,请发表评论,我将更新此信息。 感谢

1 个答案:

答案 0 :(得分:6)

您需要一个包含此字段的product

  • product_id primary key
  • 可见性,可能是布尔
  • 股票,可能是布尔
  • 折扣,整数
  • 备注,可能是布尔

然后是菜单左侧的表格category

  • category_id primary key
  • 名称{基本,收藏,衬衫,裤子,连衣裙}

和数据透视表product_category

  • PRODUCT_ID
  • CATEGORY_ID

最后您的查询将是

SELECT p.*
FROM products p
INNER JOIN product_category pc
        ON p.product_id = pc.product_id
WHERE 
     p.Visibility = @visibilty  
 AND p.Stock = @Stock
 AND p.Discount = @Discount
 AND p.Remarks = @Remarks
 AND pc.Category_id in (@category);