当前位置: 首页 > 面试题库 >

类别,子类别和相关书籍的设计数据库

孔权
2023-03-14
问题内容

我知道有几个答案类似于我所问的几个问题。但是他们的方法看起来并不令人信服。

我的问题是我如何为可以拥有书籍的类别和也可以拥有书籍的子类别构建数据库?

我已经设计了一个数据库,但是不相信这种方法。因此,如果有经验的家伙给我一些建议,改进或完全不同的方法,我将不胜感激。

这就是我的表格的样子(请记住,这不是实际的代码)

TABLE Category
    ID
    user_id -- Foreign key from user
    name

TABLE SubCategory
    ID
    user_id
    category_id
    name

本书的桌子采用相同的设计。


问题答案:

无论是顶级类别还是子类别,都没有理由为一张以上的“类别”使用多个表格。它们都只是“类别”。

因此,有一个称为“类别”的表,其中包含一个parent_id字段:

// categories table
id
name
user_id
parent_id

如果要提取所有顶级类别,只需对categories表运行查询,条件parent_id为空。

然后,当您要提取子类别时,只需categories使用条件parent_id = 123 (或其他条件)对表运行查询。

这样不仅可以使所有内容保持整洁,而且还可以扩展,以防您要继续添加子子子子类…等。

另一个选择是使用CakePHP的TreeBehavior。

我个人只是使​​用我上面建议的方式,但是可能只是因为我没有花时间真正地理解这种行为。



 类似资料:
  • 我在书店网站上有三张桌子。类别、子类别和书籍我想在将数据插入图书表时选择类别和相关子类别,但子类别无法从类别中获取id,并且在列表中未显示任何子类别我的代码如下:

  • 我已经为产品创建了一些自定义类别,它有子类别,子类别还有更多的子类别。现在我首先显示主要类别。如果我在那里显示子类别,那么将显示与该类别及其子类别相关的所有子类别。我想一步一步地向他们展示。也就是说,如果用户单击主类别,则会转到其子类别页面。如果用户单击其子类别之一,则应转到子类别,如果没有子类别,则显示产品。这是什么代码 它覆盖了以前的排序顺序。也就是说,如果从仪表板中,我们按排序顺序给出2到3

  • 我正在使用产品的ms-sql db构建一个 asp.net 网站 - 每个产品属于一个或多个类别,每个类别可以属于一个或零个父类别。 用户应该能够选择零个或多个类别,但我想不出一种方法来只返回所选类别中的产品。 我有其他正在工作的过滤器(最低价格,品牌名称等),但不能让类别工作。 例如: 如果选择了类别1,则应返回具有最终父类别为类别1的类别的所有产品。 如果选择了子类别1.1和子类别1.2,则所

  • 我目前有一个代码片段,其中对于每个类别,它将找到子类别: 将递归获取一个类别的子级: 目前,使用,只检索子类别的子类别,因此如果每个子类别都有自己的子类别,则不会将其保存到子类别中。 我如何显示子子类别给我们的子类别? 我想用我的代码做的是获取一个父级,获取它的子级,然后将这些子级中的每一个视为父级,递归地获取它的子级,但是我的JSON输出并没有反映这一点。只有父对象有子对象-子对象没有子对象(尽

  • 我是拉威尔的新手,在构建“真实世界”项目的同时,我也在努力学习。 我的项目是机密网站。目前,我正在按步骤显示所有类别、子类别和每个子类别下的项目数量。 在数据库中,我描述了名为的表中的所有类别(主类别和子类别)。有一个名为的列,它是父类别(如果是子类别)的id。 在模型我有 在我的控制器中 在视图中,这就是我显示父类别的方式 我尝试的子类别是在foreach中添加一个 错误是 未定义的属性:Ill

  • 我试图在html表中输出类别和子类别,我有一个问题,即所有的子类别都打印在所有的类别下 我用这个公式 cat_id 猫名 母猫 我想打印父主类别下的每个子类别 我使用这个代码 还有显示器。第三方物流是 有什么想法吗,伙计们 问候