Дизайн модели - Какой оптимальный способ сделать это? - PullRequest
0 голосов
/ 09 января 2012

У меня есть это приложение, которое я пишу в Rails 3.1, мне интересно, как лучше всего это смоделировать.

Было бы лучше, если бы я создал модель под названием «Фильм» с «названием», а затем создал новую модель для каждого «актива фильма», такого как «постер, трейлер, рекламный ролик» и т. Д., И связал бы его с «Фильмом». по ассоциациям? Или было бы лучше, если бы я просто создал это как единое целое и покончил с ассоциациями каждого актива в «Кино»?

model question

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

Ответы [ 2 ]

2 голосов
/ 10 января 2012

Для фильмов может быть три типа атрибутов (столбцов).

  1. которые имеют ровно одно значение и присутствуют в каждом фильме, например название, год, официальный трейлер и т. д.
    • Держите их в таблице фильмов.
  2. которые имеют ровно одно значение, но присутствуют в нескольких фильмах, например Всего наград Академии.
    • Храните их в отдельной таблице и используйте has_one + own_to ассоциация.
  3. Которые имеют несколько значений, например прицепы
    • Храните их в отдельной таблице и используйте has_many + own_to Ассоциации.

Дополнительные предложения:

  • Для многих атрибутов ключ-значение проще использовать один столбец json / yaml, используя сериализацию, вместо создания одного столбца для каждого ключа.
  • Не храните изображения в БД, храните их в файловой системе или облачном хранилище.
0 голосов
/ 09 января 2012

Вы можете создавать свои модели в нужном вам порядке, поскольку вам необходимо заполнить обе модели, чтобы создать уникальную ассоциацию (например, belongs_to и has_many), поэтому я думаю, что это не имеет значения!

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