2014-11-03 72 views
0

我正在創建一個新聞網絡應用程序,並且每個新聞都有一個類別字段,但此類別可以是一個或多個時間。這意味着,一個人可能只爲一篇新聞文章輸入politics, world, us標籤。現在,我遇到的問題是如何將其插入到數據庫中。如果我只要直接輸入標籤數據庫,爲純文本,然後我當我有呼應它,我可以使用爆炸()將它們分開,像如何處理文章網站的多個類別條目

$row['tags] = 'politics, world, us'; 

foreach(explode($row['tags') as $tag){ 
    echo "<a href='{$tag}'> {$tag} </a> "; 
} 

這將呼應的標籤,並創建一個每個標籤都有超鏈接,但是我遇到的問題是,如果用戶只想看到帶有特定標籤的新聞,就會變成問題,因爲我無法查詢所有行,理清標籤,爆炸標籤並只顯示那樣的新聞提要。這是可行的,但非常麻煩。所以,我想問一下如何做到這一點。我確信它涉及到,也許有另一個表叫做tags,但是我儘可能去

回答

2

正確的做法是在數據庫中建立多對多的關係。這需要包含在多個用戶與多個角色的這個例子中的相互關係

外觀類別和物品的ID的附加表:

enter image description here

以同樣的方式,你可以創建一個關係文章分類

2

您可以使用SET來存儲數據,或者我建議爲Maciej提及的另一個表格添加標籤,另一個表格存儲文章和標籤之間的關係。

文章表:

id | title | content 

標籤表:

id | label 

articles_tags表:

article_id | tag_id 

考慮加入foreign key constraints到最後一個表,這會讓你的生活更輕鬆。

相關問題