【问题标题】:How do I implement categories in php如何在php中实现分类
【发布时间】:2016-04-09 13:10:26
【问题描述】:

正如标题所示,我想为我正在开发的网上商店创建产品类别和子类别列表。假设有一个名为 Apparel{parent category} => 鞋类、鞋类..等 {child category} 的类别,并且鞋类将包含所有鞋类产品。 我该如何实施?即我是否应该将所有主要类别放在一张表下。然后每一行都会引用另一个表?

【问题讨论】:

  • 使用现有的商业库编写自己的?你知道'category' -> subCategory' 是recursive 关系而不是'线性' 关系吗? imo,您的数据结构应该反映这一点。即不要将自己限制在两个层次上。有人会想要三个或更多级别。 ;-/ imo,一开始就将其构建到数据结构中。您不必使用它,但可以在以后扩展它而无需丢弃您的数据结构并重新开始。 imo,值得看看一些已经这样做的开源库。
  • @RyanVincent 我正在从头开始编写代码。顺便说一句,它是我关心的递归关系。
  • 如果您决定拥有一个包含单独子类别的类别表,这取决于您。秋千和回旋处。不管 - 子类别表必须有一列保存其子类别的 id。您可以使用它来指示它有更多的子类别。编码:首先,当你解决它时——保持它非常简单。因此,您最终可能会执行比您喜欢的更多的查询。任何。 imo,总是从简单有效的事情开始。 ;-/ 你可以稍后重构它。 imo,对于大树,请查看“嵌套集”,但稍后 - 不是现在。
  • 如果你想要一些'php / mysqli'代码来遍历树,那么这可能值得一看? stackoverflow.com/a/29838522/3184785。我将重新发布它所需的代码。
  • 我同意 - 自己编写查询是值得的 - 这是了解正在发生的事情的最佳方式。我真的只是指出,如果它变得“尴尬”,有人会提供帮助:)

标签: php mysql


【解决方案1】:

这就是你的桌子的样子

id | item_name  | parent_id | 
1  | Shoes      | 0         | 
2  | Jackets    | 0         | 
3  | Formal     | 1         | 
4  | Casuals    | 1         | 
5  | Party Wear | 2         | 

在这里您可以看到您的父类别有 parent_id 0 并且所有其他子类别在 parent_id 列中都有其父类别的 id。通过这种方式,您可以将产品存储在同一张表中,并使用 parent_id 区分它们

例如:Record 1,即 Shoes 是 parent,parent_id 为 0,record 3,4 是 record 1 的子类别,因为它们的 parent id 为 1。

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 2012-07-15
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多