Rails ... Правильно ли я моделирую это? - PullRequest
0 голосов
/ 01 марта 2011

В моем приложении есть курсы, в которых есть шаги.(Пользователь продолжает курс, просматривая шаги по порядку)

Но есть много типов шагов (Викторина, Текст, Видео ... и т. Д.).В этом примере я покажу 2 шага.

Вот мой дизайн базы данных / модели на данный момент:

steps

  • id
  • step_type_id
  • client_id
  • title
  • summary
  • position

Отношения :

  • принадлежит_: клиент
  • принадлежит_то: step_type
  • has_one: step_quiz
  • has_one step_text

step_quizzes

  • id
  • step_id
  • инструкции
  • correct_to_pass
  • retakes_allowed
  • time_limit

Отношения :

  • принадлежат: step
  • has_many: quiz_questions

step_texts

  • id
  • step_id
  • content

Отношения :

  • принадлежат: step

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

1 Ответ

0 голосов
/ 01 марта 2011

Кажется, что в этом примере лучшим подходом будет использование STI .Полиморфные ассоциации лучше для обратной связи - например.когда будет несколько вещей, которые могут иметь один и тот же шаг (курсы, семинары, ...).

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