我要求每个主题都有一些子主题。每个子主题都需要能够有n个注释。
我需要有数据库表来表示这个结构,然后查询它以获取子主题列表,并为每个子主题获取属于它的所有注释。我还必须知道我何时到达每个subitopic的评论结束。
有人可以就此提出最佳设计/咨询建议吗?
我使用MySQL。
非常感谢! - 亚历克斯
答案 0 :(得分:1)
我认为这个数据库设计可能有效:
TOPIC
id
name
TOPIC_HAS_TOPIC
id
parentId
childId
COMMENTS
id
comment
topicId
答案 1 :(得分:1)
需要的表格: 话题 SubTopic(具有指向父主题的父键) 注释(具有指向父子主题的父键)
然后,对于给定的子主题,只需选择具有该子主题密钥的所有注释。
答案 2 :(得分:0)
您可以这样设计:
|Topic| -1----*- |SubTopic| -1----*- |Comments|
(编辑:星号似乎标记为斜体。所以请忽略色差)
即,从主题到子主题的1对多关系以及从子主题到评论的另一个1-many
您可以为每个表设置代理主键:
Create Table Topic (topic_id int auto_increment, primary key(topic_id),...)
类似于Subtopic的subtopic_id和主题的外键等等。
获取特定主题的所有注释可能如下所示:(假设注释表的文本属性(可能是TEXT数据类型?))
select comment.text from comments
join suptopic using(subtopic_id)
join topic using (topic_id)
where topic_id = 1;
( join 与内部联接相同,'使用'仅适用于'join-column'共享同一名称,否则语法不同。)