【问题标题】:Storing distance traveled in each state per trip in the database在数据库中存储每次旅行在每个州的旅行距离
【发布时间】:2023-03-04 14:57:01
【问题描述】:

我有数千次旅行,每次旅行都有一个起点和目的地。我的目标是实际存储每次旅行在每个州旅行的里程。 (如果我从丹佛到 SLC,我最终会在 CO 和 UT 中获得一些里程。

我已经有一个包含起点和终点的表格,我需要考虑一个好的架构来存储每个州每次旅行的里程数。

想法 #1: - 创建 1 个包含 trip_id 和 48 列的表 -> 为每个较低的大陆州创建 1 个。

想法 #2: - 使用 trip_id、state_id(+ 带有位置的附加表)、total_miles 创建一个表

解决方案 1 在存储数据(更少的行)方面似乎更有效,但我不确定一张表如何处理 200 万次行程 + 新表中每个状态的多个条目。

有什么建议吗?

【问题讨论】:

    标签: mysql database-design architecture


    【解决方案1】:

    想法#2 听起来是一个更好的想法。让我解释一些原因。

    首先,您对“状态”的定义可能会发生变化,并且添加/删除列非常麻烦。例如,“DC”可能是一个状态。或者您可能会扩展到加拿大。或者甚至带入阿拉斯加。向表中添加新行很简单。

    其次,对于简单的任务,例如将行程的总里程相加,一个简单的聚合查询比相加 48 列以上要简单得多。

    第三,可能不止一次重新进入一个状态的旅行怎么办。想象一下有人从卡拉马祖 (MI) 开车到上半岛的霍顿 (MI)。他们可以非常合理地选择穿过芝加哥的路线,经过 MI --> IN --> IL --> WI,然后返回 MI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多