【问题标题】:How to keep record of Trips made in a transportation company?如何保存在运输公司的旅行记录?
【发布时间】:2020-08-06 13:38:39
【问题描述】:

我想记录一天的行程。 我有以下使用 MySQL 的表:

  • 路线 (routeID,start,destination,carId)
  • 用户 (userId,routeId,...)
  • ticket (ticketID,routeID..)
  • 汽车(汽车 ID、车主 ID)
  • 所有者(ownerID..)

所以我的问题是我想记录一天中的旅行记录,例如,包括购买车票的用户由所有者拥有的汽车在指定路线上运输,以显示为管理员、车主的历史记录和用户。

也许使用 INNER JOIN 的查询可能会告诉我我想要什么,但它不会记录任何内容,那么适合这种情况的最佳模型/表结构是什么。

我希望我尽可能清楚地说明这一点。 非常感谢您的考虑。

【问题讨论】:

  • 机票没有关于行程开始和结束日期/时间的信息?
  • 在您的问题中没有tripID,也没有关于餐桌旅行的其他任何内容......
  • 到目前为止你尝试过什么?您在哪里卡住了进度?
  • 当然你应该展示你到目前为止所做的尝试。此外,创建显示数据结构的模型和作为实际代码片段的查询之间存在差异。最好先建立模型,以便了解数据。
  • 对于我的帖子中的任何晦涩之处,我深表歉意。我想知道您将如何定义存储每天每次旅行记录的表。

标签: mysql database logging model uml


【解决方案1】:

由于它是一家运输公司,我了解route 是一项常规服务。要解决您的问题,您必须:

  • 确定route 在给定日期的出现次数。
  • 以某种方式将users 与他们购买的ticket 关联起来。

解决方案将取决于您已有的。

在数据库中

案例 1:如果 ticket 是针对特定日期的,那么您已经解决了第一点。如果为user 发出ticket,则您解决了第二点。在这种情况下,您的行程是user 与ticket 和route 的内部连接(以及任何其他包含相关数据的表)。不需要录音。在数据库中,您可以使用始终保持最新的 CREATE VIEW 来解决此问题。

案例 2:如果不满足上述任何条件(例如,没有日期的票,或匿名票),您需要添加一个提供缺失信息的 trip 表,例如routeId, userId, ticketId, date_of_travel。您还可以创建一个视图来将此数据与其他表连接起来,并使所有感兴趣的相关数据始终可用。

在您的模型中:

在第一种情况下,您无需在 ER 模型中执行任何操作,因为行程已经存在(可能在车票中)。但是在 UML 类图中,您可以显示与其他类关联的行程类,以明确数据和关系的可见性。

在第二种情况下,您将在用户和工单之间添加多对多关联,并使用关联类来保存您需要记录的其他信息

【讨论】:

  • 感谢先生的明确回答。它真的让我看到了我看待我的概念的方式。
  • 附带说明(因为我曾在德国铁路工作过一段时间):票务系统非常庞大。最糟糕的是关税。所以上面是你需要建造的海滩上的沙子。
猜你喜欢
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多