Итак, я проектирую базу данных, и у меня есть объект под названием 'resources', который имеет стандартные атрибуты, такие как name, url, email, которые хорошо вписываются в схему базы данных (как varchars и текстовые типы данных). Однако эти ресурсы имеют другие атрибуты, которые должны быть представлены в форме HTML в виде флажков, то есть они могут принимать более одного значения в зависимости от количества отмеченных флажков, но также должны быть доступны для поиска. Фактически, в требованиях говорится, что большинство этих атрибутов ресурсов должны быть доступны для поиска, и это хорошо для типов столбцов varchar и text, но я не знаю, что делать с этими атрибутами, которые могут принимать более одного значения из набора значения (атрибуты представлены в виде флажков.)
Вот пример того, что я имею в виду:
Темы ресурсов
Пожалуйста, выберите темы для этого ресурса:
- Переработка
- Снижение
- Многократное
- Компостирование
- Свалка
Итак, здесь атрибут ресурса является темой ресурса и для этой записи ресурса, если пользователь проверяет
Вторичная переработка, повторное использование и захоронение, тогда я должен сохранить эту информацию в записи базы данных, но она должна быть доступна для поиска, то есть, если пользователь запрашивает «переработка», «повторное использование» или «захоронение», тогда вышеупомянутая запись будет возвращена. *
Кстати, я должен сделать это на PHP и MySQL. Итак, я попытался сериализовать флажки с помощью PHP и сохранить их как сериализованные строки, однако они не очень доступны для поиска, потому что я получаю противоречивые результаты, когда пишу запросы MySQL, которые пытаются сопоставить термины, используя «LIKE». Я подозреваю, что это связано с тем, как PHP сериализует массивы. Поэтому мне было интересно, есть ли лучший способ сделать это. Будет ли хранение данных в виде строк в кодировке JSON лучшим способом сделать это?
Любые предложения будут с благодарностью.