分层数据库模型的问题?

时间:2011-08-24 19:57:52

标签: mysql database-design hierarchical-data

我的数据库设计出了问题,我正在开发一个论坛,您可以在该论坛中添加topcis然后再添加子主题等等,但在该子论坛中它必须显示该主题的答案,以及子主题,所以你有一个父主题和孩子,我的问题是id,我的意思是例如当你创建一个主题id = 1,然后你指定parent_id = 1,但你怎么知道该主题的孩子,例如主题id = 2,parent_id = 1,你可以给孩子分配id = 2,但是有更好的方法吗?你的方法如何解决这个问题?还有mysql我不知道

我有两张桌子

“主题”

ID 名称 id_creator 日期 信息 PARENT_ID

“回答”

ID 名称 信息 id_creator 日期

1 个答案:

答案 0 :(得分:2)

我最近必须在MySQL中执行此操作,遗憾的是,MySQL不提供任何有用的处理分层数据。

我使用了一个名为path的额外varchar列,我将存储指向当前项的'path'。例如。一个id = 127的行,它是id = 120的子节点,id = 15的子节点,其路径='/ 15/120/127'。

插入数据时,您需要自己处理。

提取id为15的行的直接或非直接子行的所有行将如下所示:

SELECT * FROM table WHERE
  path LIKE '%/15/%'

我还可以看到这是Stackoverflow上讨论得很多的话题。请查看此问题旁边的“相关”列中的右侧。