Как связать статью с несколькими категориями - PullRequest
0 голосов
/ 02 ноября 2011

Новое в PHP / MySQL и создание CMS. Мне нужно знать, как связать статью с несколькими категориями, например, «Моя статья 1» должна быть в 3 категориях, а «Моя статья 2» должна быть только в 2 и т. Д.

Это в основном просто таблица, созданная для начала. Вот что у меня есть:

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

Table = categories
Fields = id, categoryTitle

Я немного знаю об объединениях, отношениях и т. Д., Но я хочу понять это с самого начала.

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

Вам нужна таблица «многие ко многим», которая свяжет идентификаторы статей с идентификаторами категорий

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']));
1 голос
/ 02 ноября 2011

Вам нужна третья таблица, которая называется article_to_categories или чем-то еще, с двумя полями:

  • article_id
  • category_id

Добавить запись для каждой статьии категория ассоциация.Установите для PK оба столбца.

...