我正在构建一个预订应用程序,我想就如何设计模型提出建议。 我有预订和表模型,目前设计如下:
class Table < ApplicationRecord
belongs_to :restaurant
has_many :reservations
end
class Reservation < ApplicationRecord
belongs_to :table
belongs_to :restaurant
end
然而,餐厅通常需要为几张桌子预订1次 - 对于一组10人,2张桌子连在一起,并且两个桌子都不应该在给定时间可用。在这种情况下,我有两个选项:
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
从长远来看,您认为哪种选择更好(如果是第二种,那么设计是否准确?)?
非常感谢您的任何建议!
答案 0 :(得分:1)
ReservationTable方法看起来不错。
逻辑上,如果它们也通过ReservationTable和Table关联,则直接将预订与餐厅相关联是多余的,但我可以看到,在预订的生命周期中可能存在可能没有分配表的状态。我不会改变它。