2014-12-27 5 views
0

Мне интересно, что является лучшим способом хранения значений из множественного выбора в базе данных?Rails: Сохранение и извлечение значений из нескольких выбранных

У меня есть модель «Люди» и мне нужно хранить предпочтения людей, которые могут быть несколько значений

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

People_Preferences - person_id - Preference_id (Запоминание только один preference_id)

мне нужно, чтобы иметь возможность фильтровать по предпочтениям людей.

Какой из этих подходов является лучшим или есть лучший подход?

ответ

1

Похоже, что все, что вам нужно, это таблица соединений «people_preferences» и отношение habtm к preferences от модели Person и другое habtm от предпочтения к персоне. Это была бы моя рекомендация без колебаний.

Но это действительно зависит от ряда факторов. Postgres поддерживает типы массивов, что означает, что соединение не требуется, и тип intarray, который может использоваться для хранения внешних ключей, но ссылочная целостность сложнее достичь, когда значения массива связывают строки в других таблицах. Если вы используете mysql, то это не вариант.

Смежные вопросы