Я создаю приложение для резервирования, и мне бы хотелось получить совет о том, как создавать модели. Я Бронирование и Таблица модели в настоящее время разработаны так:Дизайн таблицы для многих отношений
class Table < ApplicationRecord
belongs_to :restaurant
has_many :reservations
end
class Reservation < ApplicationRecord
belongs_to :table
belongs_to :restaurant
end
Однако часто в ресторане нужно сделать 1 резервирование для нескольких таблиц - для группы из 10 человек, 2 таблицы соединяются вместе и оба из них не должны быть доступны в данный момент времени. В этом случае, у меня есть 2 вариант:
- Создания 2 идентичных оговорок для 2 таблиц (простых, но кажется ненужным, поскольку там может быть событие с 10 таблицами, необходимых)
- Создать новую модель ReservationTable и изменений модели для:
class Table < ApplicationRecord belongs_to :restaurant has_many :reservation_tables has_many :reservations, through: :reservation_tables end class Reservation < ApplicationRecord belongs_to :restaurant has_many :reservation_tables has_many :tables, through: :reservation_tables end class ReservationTable < ApplicationRecord belongs_to :reservation belongs_to :table end
Какой выбор вы думаете, что лучше в долгосрочной перспективе (а если с econd, дизайн точный?)?
Благодарим вас за любые предложения!