【发布时间】:2012-08-02 11:05:01
【问题描述】:
我正在构建一个具有各种主题的父/子结构的网站。 (再解释一下,它实际上有 4 个级别,所以:parent < child < 2nd child < 3rd child)目前我在 MySQL 中为每个级别都有一个表。每个孩子都有一行引用父母的 id 和主键。我遇到的问题是,我无法创建一个显示子主题的列表,如下所示:
Food
Fruit
Red
Cherry
Yellow
Banana
Meat
Beef
Pork
我考虑过在http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ 上使用这样的单个分层表,我知道它可以输出这样的列表。
但是,问题在于该表很容易有数百万个帖子(假设这是基础),并且每次请求页面时都会对其进行排序的递归函数似乎需要很长时间才能加载.
虽然我承认这不是一个很好的问答网站,但我想知道是否有人知道 Yahoo Answers 如何存储他们的类别和子类别,因为它看起来与我需要做的类似。是否有任何网站拥有任何人都可以提供相关信息的类别/子类别数据库?
如果我想要一个像上面那样的列表,我是否必须使用单个分层表(相邻列表模型或修改的预排序树结构)或者我可以只使用 php、sql 和 javascript 来创建一个这样的列表我目前拥有的;每个级别的孩子有 4 张桌子?
【问题讨论】:
-
你为什么不直接使用像 Drupal 这样的 CMS?从头开始构建它似乎很奇怪。
-
我也对这个话题感兴趣。只是一个想法:如何存储放置主题的“级别”?它可以帮助搜索“向上”树
-
@Sebi,我认为这是一个可能的解决方案,但我希望在本地管理所有内容,而无需使用其他产品来交付我的产品。
-
@Fire-Dragon-DoL 这可行,但似乎仍需要很长时间才能对所有数据进行排序。
-
我有一个类似的系统,从头开始构建(如果我理解你的问题)。我有“父”链接,“子”链接链接到父链接,“孙子”链接链接到子链接。所有链接都在同一个表中,但我添加了一个级别字段(父母:级别 = 0,孩子:级别 = 1 等),并添加了一个链接父字段。子链接的 link_parent 字段将设置为其相关的父唯一 ID。希望这是有道理的!
标签: php javascript mysql sql