鍍金池/ 問(wèn)答/HTML5  PHP  HTML/ 一般的收藏夾 數(shù)據(jù)表怎么設(shè)計(jì)?

一般的收藏夾 數(shù)據(jù)表怎么設(shè)計(jì)?

假設(shè)這么設(shè)計(jì) id(int),user_id(int),collected_id(int)

如果有十萬(wàn)個(gè)用戶(hù),每個(gè)用戶(hù)收藏5個(gè)東西,那么有很多冗余數(shù)據(jù)啊
我的想法是將收藏的商品id 保存成字符串 逗號(hào)分隔;

1.我設(shè)計(jì)的表: user_id int, collected_id varchar(xx) -----1,'1,2,3,4'

回答
編輯回答
痞性

前者好。
后者實(shí)現(xiàn)起來(lái)麻煩,而且有些業(yè)務(wù)邏輯很難實(shí)現(xiàn),比如你要看某個(gè)商品被收藏多少次。

2017年2月16日 21:30
編輯回答
負(fù)我心

建議看看sql反模式 非常清楚的分析了 你這種設(shè)計(jì)數(shù)據(jù)庫(kù)的不足

2017年8月17日 18:25
編輯回答
刮刮樂(lè)

我覺(jué)得沒(méi)必要

1.不容易查詢(xún)商品有哪些用戶(hù)收藏
2.如果收藏的商品數(shù)量很大需要分頁(yè)處理也很繁瑣

2018年5月30日 14:49
編輯回答
你的瞳

數(shù)據(jù)庫(kù)范式是曾經(jīng)空間很昂貴的情況下提出的,不一定非要按數(shù)據(jù)庫(kù)范式來(lái)設(shè)計(jì),冗余也是可以的

2017年11月4日 16:51
編輯回答
孤毒

照你的意思,用戶(hù)表也設(shè)計(jì)二三十個(gè)字段,什么地址電話簡(jiǎn)介等等都放一個(gè)表??還是用逗號(hào)分隔放在一個(gè)字段里??

2018年8月10日 21:22
編輯回答
厭惡我

用逗號(hào)分割開(kāi)來(lái)不方便統(tǒng)計(jì)數(shù)據(jù),或者用戶(hù)對(duì)收藏進(jìn)行增刪改查。
還是每一條數(shù)據(jù)單獨(dú)一條。然后如果覺(jué)得數(shù)據(jù)太多統(tǒng)計(jì)起來(lái)耗費(fèi)時(shí)間長(zhǎng),可以單獨(dú)新建一個(gè)統(tǒng)計(jì)表,一個(gè)用戶(hù)一條數(shù)據(jù)。每次增刪對(duì)表數(shù)據(jù)進(jìn)行+1 -1.

2017年3月16日 11:16