【问题标题】:PHP eCommerce categories structure explained [closed]PHP电子商务类别结构解释[关闭]
【发布时间】:2013-12-27 21:23:22
【问题描述】:

我正在使用 PHP 和 mysql 开发一个简单的在线商店。

我需要了解类别与产品的关系!

我在 mysql 数据库中创建了一个名为“categories”的表,并在该表中创建了两个名为“cat_id”和“cat_name”的列。

我还创建了一个表格,其中包含产品及其名为“products”的表格以及两个名为“product_id”和“product_name”的列。

现在我需要知道如何将这两个表链接在一起?

有人可以帮我澄清一下吗?

【问题讨论】:

  • 您的产品表中还需要有一个 cat_id。
  • 查看我的答案here我相信它涵盖了你所需要的
  • 取决于产品是否只能在一个或多个类别中。在第一种情况下(只有一个)将外键添加到产品中,这是对类别 (cat_id) 的引用。在另一种情况下,您需要一个关系表,每行有一个 product_id 和 cat_id。

标签: php mysql


【解决方案1】:

如果产品可以有 许多 个类别,并且可以将类别分配给 许多 个产品。这是一个ManyToMany 关系,因此需要一个链接表。

我将创建一个表product_category,其中包含product_idcategory_id

如果一个产品只能有一个类别,您可以将其作为外键添加到产品表中作为列,例如category_id

【讨论】:

    【解决方案2】:

    这取决于你的概念。产品可以同时存在多个类别吗?如果是这样,您将需要一个链接表。否则,您可以简单地将一列添加到您的 products 表中,其中包含它所在类别的 ID。

    前者更复杂,因为它涉及多对多关系,作为规范化的一部分,您应该避免这种情况。您需要有一个如下所示的链接表:

    +------------+------------+----------+----------+
    |   cat_id   |   prod_id  |  active  |   order  |
    +------------+------------+----------+----------+
    |     1      |     1      |    1     |     0    |
    |     1      |     2      |    0     |     1    |
    |     2      |     2      |    1     |     0    |
    +------------+------------+----------+----------+
    

    如您所见,我们有四列(您可能只需要两列):

    • cat_id 是类别的 ID(来自 categories
    • prod_id 是产品的 ID(来自 products
    • active 是一个布尔值,指示产品当前是否在此类别中处于活动状态
    • order 定义该产品在给定类别中的排序顺序

    在上面的示例数据中,产品 ID 1 和 2 都出现在类别 1 中。但是,产品 ID 2 未激活。产品 ID 2 也显示为类别 2 中的唯一产品。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多