Как сделать вывод постов по тегам?

Kaufmann

Новичок
Привет! Хочу сделать поддержку тегов для постов, чтобы потом можно было просмотреть те из них которые относятся к определенному тегу. Суть:

Пользователь хочет добавить новый пост:

1. В первом текстовом поле - пишет свой текст.
2. Во втором текстовом поле - пишет несколько ключевых слов к своему тексту.

Пользователь хочет просмотреть определенные посты:

1. В навигационном поле - выбирает, из всех имеющихся, конкретное ключевое слово.
2. Видит все посты, которые относятся к выбранному ключевику, т.е. тегу.

Как все грамотно устроить ?
 

artoodetoo

великий и ужасный
Обязательно:
Добавить таблицу используемых тегов (tag_id, tag_name). Теги и посты относятся дуг к другу как много-ко-многим, значит нужна ещё таблица-связка (post_id, tag_id)

Опционально:
Можно согласиться на некоторую избыточность - держать список тегов еще и в мемо-поле или большом текстовом поле самого поста. Тогда не понадобится подклеивать джойны ко всем имеющимся запросам по ленте сообщений.

P.S. Для маленьких велосипедов можно обойтись без дополнительных таблиц, просто хранить теги текстом. Но лучше всё по феншую и на вырост
 

DIG

Новичок
Партнер клуба
Ну сделайте например три таблицы. Посты, тэги, связующую таблицу тэги-посты. Ну и джойните эти талицы и выбирайте хоть статьи по тэгам, хоть тэги по статьям.

Сейчас гуру подтянутся, может более грамотное решение подскажут.
 

Kaufmann

Новичок
Теги и посты относятся дуг к другу как много-ко-многим, значит нужна ещё таблица-связка (post_id, tag_id)
Т.е., например, если у меня есть "post_name1" (post_id=1), который относится к трем тегам: "автомобиль" (tag_id=1), "звук" (tag_id=2), "взрыв" (tag_id=3), то таблица связка будет выглядеть так:

1 = 1
1 = 2
1 = 3

Правильно понимаю?
 
Сверху