0

первой недели играть с рельсами, и я немного застряли на этом активной записи отношенииBi-Directional самосправочной Активной запись ассоциации

У меня есть 3 таблицы прямо сейчас, Событие, Драка и бойцы. Каждый бой принадлежит событию, и бойцы могут иметь много боев. Я хочу иметь возможность хранить информацию в таблице боев, такую ​​как победитель, как выиграл бой, судья и т. Д.

Я занимался некоторыми исследованиями, и я думаю, мне понадобится двунаправленная самость -referential имеет много сквозных отношений для боев. Требуется ли это 2 записи в сквозной таблице? Если да, то как я могу запросить бои во время просмотра события без двух записей для каждого боя?

Что было бы лучшим способом сохранить победителя, если я хочу показать запись бойцов на странице бойцов? У вас есть winner_id и loser_id в таблице? Это становится путаным, когда могут быть розыгрыши и никаких конкурсов.

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

Любые предложения приветствуются! Приветствия

ответ

0

Я предлагаю добавив несколько таблиц:

Участники

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

  • fight_id - внешний ключ для борьбы (belongs_to)
  • fighter_id - внешний ключ для борьбы (belongs_to)

Решение

Решение может иметь много информации, как тип = "KO", "TKO" и т.д. Дополнительная информация, как судей, голосовавших. Рисует и не решение не будет здесь

  • fight_id - внешний ключ для борьбы (belongs_to)
  • типа
  • winner_id
  • loser_id
  • DT - DateTime для того, когда было достигнуто
  • решение

И редактировать боевые действия, чтобы содержать поле для статуса:

Поединки

  • статус - (решение, не решение, рисовать, отменено, и т.д.)
Смежные вопросы