2011-02-18 105 views
0

我有一個要求,每個主題有一些子主題。每個子主題都需要有n個評論。數據庫設計和查詢

我需要有數據庫表來表示這個結構,然後查詢它以獲取子主題列表,併爲每個子主題獲取屬於它的所有註釋。我也必須有一種方法來知道什麼時候我對每個子位的評論達到了結束。

有人可以請建議最佳設計/查詢這個?

我使用MySQL。

非常感謝! - 亞歷

+0

我覺得我的家庭作業傳感器正在關閉。 – 2011-02-18 00:21:18

回答

1

我覺得這個數據庫的設計可能工作:

TOPIC 
id 
name 

TOPIC_HAS_TOPIC 
id 
parentId 
childId 

COMMENTS 
id 
comment 
topicId 
0

你可以像這樣設計的:

|Topic| -1----*- |SubTopic| -1----*- |Comments| 

(編輯:星號似乎標誌着斜體所以請忽略的色差。)

即1 TO-從主題相關的關係,從副標題副標題和其他1-多來評論

你可以有每個表的代理主鍵:

Create Table Topic (topic_id int auto_increment, primary key(topic_id),...) 

類似subtopic_id副主題和外鍵主題等等的評論。

獲取某個特定主題的所有評論可能是這樣的:(?假設您的意見表(文本屬性可能是TEXT數據類型))

select comment.text from comments 
join suptopic using(subtopic_id) 
join topic using (topic_id) 
where topic_id = 1; 

加入相同內部連接和'使用'僅適用於'連接列'共享相同名稱,否則語法不同)。

+0

假設:假設一個子主題只屬於一個主題(否則請與arex的模式一起使用,並且在查詢中只會有額外的連接) – PhD 2011-02-18 00:33:24

1

表需要: 主題 子話題(有指回父主題父鍵) 評論(有父鍵指向父子課題)

然後,對於給定的子主題,只需選擇具有該子主題鍵的所有註釋。