鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ php,mysql 朋友圈多條動(dòng)態(tài)對(duì)應(yīng)多條評(píng)論如何查詢(xún)

php,mysql 朋友圈多條動(dòng)態(tài)對(duì)應(yīng)多條評(píng)論如何查詢(xún)

  1. 動(dòng)態(tài)表a

    id content
    1 動(dòng)態(tài)1
    2 動(dòng)態(tài)2

  2. 評(píng)論表b
    id msg a_id
    1 評(píng)論1 1
    2 評(píng)論2 1
    3 評(píng)論3 2
    4 評(píng)論4 2

如何實(shí)現(xiàn)朋友圈一樣(mysql怎么查詢(xún))

動(dòng)態(tài)1
    --評(píng)論1
    --評(píng)論2
動(dòng)態(tài)2 
   --評(píng)論3
   --評(píng)論4

回答
編輯回答
朽鹿

你的b表不太完善,因?yàn)樵u(píng)論還有對(duì)應(yīng)的回復(fù)評(píng)論,所以b表應(yīng)該還有個(gè)parent_id,默認(rèn)是0,就是直接評(píng)論的,如果有parent_id,則是回復(fù)評(píng)論。

2017年9月28日 01:56
編輯回答
柒喵

正好公司項(xiàng)目涉及到這一塊.我們是這樣處理的:

有幾個(gè)條件可以利用一下:
    1.評(píng)論不可修改(所以可以適當(dāng)冗余).
    2.動(dòng)態(tài)列表里面展示所有評(píng)論并不好(個(gè)人認(rèn)為)...可能只需要展示三五條.
    3.設(shè)計(jì)sql表的時(shí)候盡量做到利于查詢(xún)(需要計(jì)算的字段可以適當(dāng)?shù)闹苯哟娼Y(jié)果).畢竟添加跟刪除比查詢(xún)的次數(shù)少的多.
基于上面的條件,公司是這樣做的:
    1.動(dòng)態(tài)表保存三五條"最先評(píng)論(自己造的詞,見(jiàn)笑~)",反正評(píng)論不會(huì)改...
    2.動(dòng)態(tài)列表只查動(dòng)態(tài)表,因?yàn)樵趧?dòng)態(tài)列表里面評(píng)論只展示前面幾條.
    3.想看評(píng)論點(diǎn)動(dòng)態(tài)右下角的"查看更多",這時(shí)候只查評(píng)論表.

這種設(shè)計(jì)查詢(xún)很方便,只進(jìn)行單表查詢(xún)就可以,而且對(duì)于數(shù)據(jù)同步也沒(méi)有太高的要求.雖然評(píng)論數(shù)據(jù)有冗余,但是評(píng)論一般不修改.缺點(diǎn)是插入評(píng)論復(fù)雜了.不過(guò)幸好插入比查詢(xún)次數(shù)少的多.
還沒(méi)有實(shí)際投入使用.歡迎交流...

2017年4月21日 08:41
編輯回答
溫衫

聯(lián)合查詢(xún),評(píng)論表是和動(dòng)態(tài)表通過(guò)外鍵id關(guān)聯(lián)起來(lái)的,查詢(xún)動(dòng)態(tài)表的時(shí)候,where條件為評(píng)論表的外鍵id=動(dòng)態(tài)表的主鍵id

2018年9月2日 15:08