鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ 問(wèn)答網(wǎng)站的數(shù)據(jù)庫(kù)是怎么設(shè)計(jì)的?

問(wèn)答網(wǎng)站的數(shù)據(jù)庫(kù)是怎么設(shè)計(jì)的?

比如像本站思否的問(wèn)答,數(shù)據(jù)表結(jié)構(gòu)的關(guān)聯(lián)關(guān)系是怎樣的?

用戶(hù)表->問(wèn)題表,一對(duì)多
問(wèn)題表->回答表,一對(duì)多
回答表->評(píng)論表,一對(duì)多
評(píng)論表->回復(fù)表,一對(duì)多

問(wèn)題
1、上面的表之間的關(guān)系是這樣嗎?
2、對(duì)于回復(fù)表,有你回復(fù)我,我回復(fù)你,別的用戶(hù)也可以來(lái)回復(fù),那么回復(fù)表的字段應(yīng)該怎么設(shè)計(jì)?
3、性能問(wèn)題。假設(shè)總共有10萬(wàn)個(gè)問(wèn)題,每個(gè)問(wèn)題有5個(gè)回答,每個(gè)回答有5條評(píng)論,每條評(píng)論有5條回復(fù),那么回復(fù)表共有1055*5=1250萬(wàn)條數(shù)據(jù),當(dāng)從問(wèn)題列表頁(yè)點(diǎn)擊進(jìn)入問(wèn)題詳情頁(yè)的時(shí)候,這么多層的關(guān)聯(lián)查詢(xún),怎么優(yōu)化性能?

回答
編輯回答
何蘇葉
  1. 用戶(hù)和問(wèn)題表這個(gè)不難設(shè)計(jì)哈。每個(gè)問(wèn)題有個(gè)用戶(hù)ID即可。
  2. 每個(gè)回答有用戶(hù)ID和問(wèn)題ID也不難。
  3. 評(píng)論的話要分開(kāi)是 問(wèn)題的評(píng)論還是答案的評(píng)論(也可以不分開(kāi),根據(jù)type區(qū)分,但是強(qiáng)烈建議分開(kāi),單一職責(zé)嘛)

問(wèn)題評(píng)論的話就是 問(wèn)題ID,評(píng)論人ID,上級(jí)評(píng)論ID(你回我我回你這種情況)。答案評(píng)論類(lèi)似

2018年3月10日 19:14
編輯回答
悶油瓶

看看這個(gè),開(kāi)源的問(wèn)答系統(tǒng):

http://askbot.org/

https://github.com/erichegt/a...

2017年2月9日 06:01