鍍金池/ 問答/數(shù)據(jù)庫/ 分類標(biāo)簽在數(shù)據(jù)庫怎么存儲(chǔ)?

分類標(biāo)簽在數(shù)據(jù)庫怎么存儲(chǔ)?

圖片描述
我開始嘗試過每一個(gè)標(biāo)簽用一個(gè)字段,這樣當(dāng)需要取得某個(gè)分類的時(shí)候很方便。

SELECT * FROM tb WHERE `vuex`=1

可是當(dāng)字段多起來之后,發(fā)覺存儲(chǔ)效率很低,例如總標(biāo)簽數(shù)100個(gè),可是每篇文章用到的也就5個(gè),在數(shù)據(jù)庫中得多存儲(chǔ)95個(gè)無用信息。
還想過將當(dāng)前標(biāo)簽二進(jìn)制編碼后存儲(chǔ)10進(jìn)制數(shù)據(jù)

例如總共100個(gè)標(biāo)簽,當(dāng)前文章用到前5個(gè)的話,數(shù)據(jù)應(yīng)當(dāng)是'11111000000...',可以將這個(gè)字符串存進(jìn)數(shù)據(jù)庫

可是當(dāng)查詢某一個(gè)分類的時(shí)候就崩潰了,難道一個(gè)一個(gè)遍歷if查詢?同時(shí)如果要增減標(biāo)簽或調(diào)整標(biāo)簽順序也十分麻煩,所有數(shù)據(jù)都要重新調(diào)整。

那么,誰能分享一下經(jīng)驗(yàn)嗎?

回答
編輯回答
久愛她

個(gè)人經(jīng)驗(yàn):所有的屬性,或者標(biāo)簽,單獨(dú)去做一個(gè)表,然后 通過一張關(guān)系表 去 掛載上去,無論是分類的標(biāo)簽,還是文章的標(biāo)簽,都可以使用。

2017年2月28日 01:12