我正试图为乘飞机旅行的乘客开发一个数据/对象模型。
用词:
we have customers who make reservations to take trips.
我很难确定是否应该有两个对象/模型: Customer和Trip,还是三个: Customer,订座和Trip。
我相信我的困惑源于这样一个事实:随着时间的推移,预订变成了一次旅行。这一事实使我认为最好有两个模型:客户和旅行。在这种情况下,旅行将属于客户,并具有以下示例属性: customer_id、reservation_number、destination、travel_date等。
这个方法的问题是,预订会改变并且被取消,而且我不愿意把旅行模式与旅行日期、目的地或取消的很多变化搞混。
更新:这里有一些关于旅行(飞行)的项目:乘客人数、起飞时间、降落时间、飞行时间、取消次数、目的地、旅行里程、机票费用、准时到达标志、天气状况。旅行/航班可由航空公司取消,天气和预订可由客户取消,直至旅行/飞行时间为止。
也许我所缺少的是第四种模式,它将预订转换为旅行(机票?)。
所以我的问题。
我碰巧使用ruby on rails / activerecord进行开发,但这个问题适用于任何开发框架。
谢谢你的意见。
发布于 2013-08-04 15:42:52
它看起来像是一个客户has_many旅行和一个旅行has_many客户,这是一个many_to_many关系。
models/customer.rb
class Customer < ActiveRecord::Base
has_many :reservations
has_many :trips, :through => :reservations
end
models/trip.rb
class Trip < ActiveRecord::Base
has_many :reservations
has_many :customers, :through => :reservations
end
models/reservation.rb
class Reservation < ActiveRecord::Base
belongs_to :customer
belongs_to :trip
end
预订和机票对我来说是一回事,所以我不认为你需要一个单独的Ticket
模型。
发布于 2013-08-04 15:51:12
我强烈建议先创建一个域模型,然后一起忽略实现。当您完成域模型并准备开始开发时,持久性机制和编程环境将变得相关。
发布于 2013-08-04 20:34:22
在这样的系统中,通常最好是在预订实体和Trip实体之间有一个清晰的分离。回答这些问题可以帮助您设计系统:
如果你对这些问题回答“是”,那就想象一下这样的设计:
Trip UML类图http://app.genmymodel.com/engine/xaelis/trip.jpg
您可以使用此链接复制并调整模型。
https://stackoverflow.com/questions/18044324
复制相似问题