首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你应该如何模拟随着时间的推移而变化的物体?

你应该如何模拟随着时间的推移而变化的物体?
EN

Stack Overflow用户
提问于 2013-08-04 15:03:13
回答 4查看 145关注 0票数 2

我正试图为乘飞机旅行的乘客开发一个数据/对象模型。

用词:

代码语言:javascript
运行
复制
we have customers who make reservations to take trips.

我很难确定是否应该有两个对象/模型: Customer和Trip,还是三个: Customer,订座和Trip。

我相信我的困惑源于这样一个事实:随着时间的推移,预订变成了一次旅行。这一事实使我认为最好有两个模型:客户和旅行。在这种情况下,旅行将属于客户,并具有以下示例属性: customer_id、reservation_number、destination、travel_date等。

这个方法的问题是,预订会改变并且被取消,而且我不愿意把旅行模式与旅行日期、目的地或取消的很多变化搞混。

更新:这里有一些关于旅行(飞行)的项目:乘客人数、起飞时间、降落时间、飞行时间、取消次数、目的地、旅行里程、机票费用、准时到达标志、天气状况。旅行/航班可由航空公司取消,天气和预订可由客户取消,直至旅行/飞行时间为止。

也许我所缺少的是第四种模式,它将预订转换为旅行(机票?)。

所以我的问题。

  1. 如果是的话,模式和解决方案是什么?
  2. 比我更有经验的人是如何解决这个问题的。

我碰巧使用ruby on rails / activerecord进行开发,但这个问题适用于任何开发框架。

谢谢你的意见。

EN

回答 4

Stack Overflow用户

发布于 2013-08-04 15:42:52

它看起来像是一个客户has_many旅行和一个旅行has_many客户,这是一个many_to_many关系。

代码语言:javascript
运行
复制
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模型。

票数 1
EN

Stack Overflow用户

发布于 2013-08-04 15:51:12

我强烈建议先创建一个域模型,然后一起忽略实现。当您完成域模型并准备开始开发时,持久性机制和编程环境将变得相关。

票数 1
EN

Stack Overflow用户

发布于 2013-08-04 20:34:22

在这样的系统中,通常最好是在预订实体和Trip实体之间有一个清晰的分离。回答这些问题可以帮助您设计系统:

  • 在预订之前(例如在目录中),旅行可以存在吗?
  • 许多预订者都可以共享一次旅行吗?

如果你对这些问题回答“是”,那就想象一下这样的设计:

Trip UML类图http://app.genmymodel.com/engine/xaelis/trip.jpg

您可以使用此链接复制并调整模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18044324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档