我的数据库设计出了问题,我正在开发一个论坛,您可以在该论坛中添加topcis然后再添加子主题等等,但在该子论坛中它必须显示该主题的答案,以及子主题,所以你有一个父主题和孩子,我的问题是id,我的意思是例如当你创建一个主题id = 1,然后你指定parent_id = 1,但你怎么知道该主题的孩子,例如主题id = 2,parent_id = 1,你可以给孩子分配id = 2,但是有更好的方法吗?你的方法如何解决这个问题?还有mysql我不知道
我有两张桌子
“主题”
ID 名称 id_creator 日期 信息 PARENT_ID
“回答”
ID 名称 信息 id_creator 日期
答案 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上讨论得很多的话题。请查看此问题旁边的“相关”列中的右侧。