@bernex

Как лучше всего органировать тэги в базе данных?

Задача: есть пользователи, задачи у этих таблиц могут быть тэги.
Можно сделать 2 таблицы с тэгами и связями тэгов.

Можно сделать представление чтобы получить вид:
id, имя, тэги через запятую.

Но можно ли сделать запрос вида:
SELECT * FROM users_with_tags WHERE tags IN ('best', 'new')

для выборки пользователей с тэгами?

Хочется сделать работу с тэгами внутри и удобной снаружи.
  • Вопрос задан
  • 456 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
так... давайте разберемся. У пользователей тоже могут быть теги? Или теги только у задач?

А так два варианта:
- нормализовать все, теги в отдельной таблице, связать через связи. Гибко и чуть сложнее.
- хранить теги в массиве у тасков, postgresql же. Это просто, быстро и сложности будут только для оргенизации автокомплита и выборки списка существующих тегов. При таком раскладе первый вариант эффктивнее.
Ответ написан
Комментировать
kawabanga
@kawabanga
Делайте через связь многие к многим. (таблица теги и связи) .

В одном из проектов понадобилось делать быстрые выборки по тегам, и оказалось, что через такую связь их делать быстрее. (когда есть таблица теги, и таблица связей).

Как вариант, у mysql есть такая функция - find_in_set
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы