2011-11-02 97 views
0

PHP/MySQL的新手和構建CMS。我需要知道如何將文章與多個類別關聯起來,例如「我的文章1」必須分爲三類,「我的文章2」必須只有兩個類別。如何將文章與多個類別關聯

它基本上只是設置爲首先。下面是我有:

Table = articles 
Fields = id, publicationDate, title, summary, content 

Table = categories 
Fields = id, categoryTitle 

我知道一點關於聯接和關係等,但我想從一開始就這一權利。

回答

1

您需要第三個表,稱爲articles_to_categories也好,有兩個領域:

  • 的article_id
  • CATEGORY_ID

添加每篇文章和類別的關聯條目。將PK設置爲兩列。

+0

我不知道,你可以有兩個主鍵在一個表中 – Crashdesk

+0

不是兩個主鍵...使用兩列一個關鍵。這被稱爲複合鍵。或者,您可以添加另一列,但這只是浪費空間,因爲此表除了這些關聯外沒有其他任何內容。 – Brad

+0

好吧,我現在就試試。作爲一個例子,我將如何返回SQL查詢中的信息,例如。我的第1條是屬於第1類,第2類還是第3類? – Crashdesk

2

你需要一個多到許多表,將文章ID鏈接至類別ID

CREATE TABLE articles_categories (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    articles_id INT, 
    category_id INT 
) TYPE=myisam; 

因此,對於每一個你的文章,你需要插入一行到這個表進行關聯類別。

也許是這樣的:

$currentArticle = array('id' => 99, 'name' => 'Test Article'); 
$currentCategory = array('id' => 1, 'name' => 'First Category'); 
mysql_query(sprintf('INSERT INTO articles_categories (articles_id, category_id) VALUES (%d, %d)', $currentArticle['id'], $currentCategory['id']));