Поле поиска в MySQL - PullRequest
       3

Поле поиска в MySQL

0 голосов
/ 11 ноября 2010

У меня есть набор категорий для базы данных MySQL, который не сильно изменится, но может иногда.(может быть, около десятка вариантов)

Для такого рода ситуаций, когда ответы в основном с несколькими вариантами ответов, я должен просто использовать текстовое поле в моей основной таблице, а затем в PHP ограничить ответы, или сделать отдельную таблицу длясохранить значения поиска и сохранить идентификатор из таблицы категорий в основной таблице?

Просто ищите лучшие практики нормализации :)

Ответы [ 4 ]

4 голосов
/ 11 ноября 2010

Лучшей практикой нормализации является то, что вы всегда предполагаете, что вещи могут и будут меняться.Так что сделайте еще один стол.:)

2 голосов
/ 11 ноября 2010

Я бы порекомендовал вам вести таблицу категорий, содержащую идентификатор и название категории, а также любые другие столбцы, которые вы можете добавить в эту таблицу. Тогда в любых других таблицах ссылка на эту таблицу категорий по ее идентификатору.

Ваш SQL должен будет выполнить LEFT JOIN или выбрать из обеих таблиц, где sometable.cid = Categories.id

1 голос
/ 11 ноября 2010

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

1 голос
/ 11 ноября 2010

Оба в порядке, они имеют следующие последствия:

  • Текстовое поле означает, что набор ответов поддерживается в коде PHP
  • Таблица поиска означает, что набор ответов поддерживается в базе данных

Я думаю, это зависит от того, являются ли они «данными» (-> базой данных) или действительно частью приложения (-> определенно код PHP, например, если у вас есть if ($cat == 'x') { ... } где-нибудь в вашем коде.)

Для меня это больше похоже на данные, поэтому в таком случае поместите их в таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...