У меня есть 3 модели, владельцы собак, встречи по уходу за собаками, как у меня здесь отношения? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь создать веб-сайт по уходу за собаками, используя ruby / Reaction-redux Так что я пишу, но я не уверен, правильно ли я это делаю? Может кто-нибудь помочь, пожалуйста?

Owner - has many appointments 
Owner - has many dogs

Dog - has many appointments through owners
Dog - belongs_to owner

Appointment - has many dogs 
Appointment - belongs to owner

Это правильно?

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Это то, что я понял. Пожалуйста, исправьте меня, если я не прав.

У собаки есть только один владелец (без совладельцев)

Согласно приведенным выше утверждениям, вы можете реализовать следующие ассоциации:

  • Владелец: has_many: назначения
  • Владелец: has_many: собаки
  • Собака: is_to: владелец
  • Собака: has_many: назначения
  • Назначение: own_to: owner
  • Apointment: assign_to_dog

Поскольку у собак не будет нескольких владельцев, has_many через связь не требуется. Используя приведенные выше ассоциации, вы можете получить список назначений как для владельца, так и для собаки.

Надеюсь, это поможет.

0 голосов
/ 12 февраля 2020

Вот как я бы это настроил:

class Dog
  belongs_to :owner
  has_many :appointments
end

class Owner
  has_many :dogs
  has_many :appointments, through: :dogs
end

class Appointment
  belongs_to :dog # yes not owner
  has_one :owner, through: :dog
end

Причина, по которой я выбираю Appointment belongs_to :dog, заключается в том, что он позволяет вам обрабатывать случай, когда у владельца есть несколько собак без двусмысленности.

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