鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ MySQL數(shù)據(jù)庫(kù)字段關(guān)于文章欄目的設(shè)計(jì)

MySQL數(shù)據(jù)庫(kù)字段關(guān)于文章欄目的設(shè)計(jì)

我們有個(gè)新聞?lì)惖腁PP,里面有新聞和視頻的欄目,還是對(duì)應(yīng)網(wǎng)站的欄目,這些欄目都是不一樣的,預(yù)想中一篇文章或者一個(gè)視頻都放在一張表中,欄目頁(yè)放在一張表中。其中:

1.欄目表用一個(gè)字段區(qū)別欄目是網(wǎng)站的,還是APP視頻的,還是APP新聞的。
2.內(nèi)容表中用一個(gè)字段區(qū)別是視頻還是新聞。
menu欄目表可能如下:
圖片描述

其中內(nèi)容表(content)的一條新聞可以同時(shí)屬于多個(gè)欄目,比如同時(shí)屬于APP新聞欄目的“熱點(diǎn)”欄目和網(wǎng)站欄目“國(guó)外”欄目,那我在content表中該用什么樣的設(shè)計(jì)比較合適呢,要便于管理和后期檢索
content表可能如下:
圖片描述

現(xiàn)在我的content要加個(gè)什么樣的字段才能表明我的某一條新聞或者視頻是屬于哪個(gè)欄目(可能同時(shí)屬于多個(gè)欄目)的呢,預(yù)想中可能有一個(gè)varchar的字段channel,比如保存的值為“1,3,5”表明它屬于1,3,5這幾個(gè)欄目,可是這樣的話(huà),對(duì)于后期的檢索可能不太方便,因?yàn)閏ontent經(jīng)常要檢索,也只能用like模糊查找,大家有什么好的主意嗎,謝謝指教!

回答
編輯回答
九年囚

可以使用位元來(lái)表達(dá),一個(gè)int就能表達(dá)32個(gè)欄目,
例如

SELECT * FROM content WHERE `type`=POW(2,0)|POW(2,2)

可以查出屬于1,3欄目的新聞

2018年3月16日 10:39
編輯回答
青瓷

如果不是只讓用兩張表的話(huà),多對(duì)多的關(guān)系正常操作應(yīng)該是另放一張表存。
比如加個(gè)tag表,對(duì)menu.idcontent.id建立關(guān)系。

這樣在使用的時(shí)候多做一步表連接即可

2017年2月1日 19:09