Допустим, у меня есть 10 книг, каждой книге присвоено несколько категорий (например: php, программирование, кулинария, файлы cookie и т. Д.).
После сохранения этих данных в БД я хочу найти книги, соответствующие некоторым категориям, а также вывести соответствующие категории для каждой пары книг.
Что было бы лучшим подходом для быстрого и простого поиска кода:
1) Создайте столбец со всеми категориями для каждой книги, строки книги будут уникальными (категории, разделенные запятыми в каждой строке) -> денормализация от 1NF
2) Создайте столбец только с одной категорией в каждой строке и несколькими строками на книгу
Я думаю, что для других запросов будет проще, если я сохраню категории 1 на 1 (метод 2), но сложнее для этого конкретного типа поиска. Это правильно?
Я использую PHP и MySQL.
PPS: я знаю мульти-реляционный дизайн, я предпочитаю не присоединяться каждый раз к таблицам. Я использую другое соединение для некоторых таблиц, но это не проблема. Я спрашиваю, каков наилучший подход к дизайну БД для этого типа поиска: пользовательский тип кулинария, печенье, картофель и я хочу вывести пары книг, которые имеют еще 1,2 или все подходящие категории. Я ищу быстрый запрос или метод сопоставления php для этой вещи ... Скажите мне вашу точку зрения. Надеюсь, меня поняли