我有成千上万的旅行,每次旅行都有一个起点和目的地。我的目标是在每次旅行中实际存储每个州的行驶里程。 (如果我从丹佛旅行到SLC,到最后我将在CO中行驶几英里,在UT行驶一些里程。
我已经拥有一个包含起点和终点的表格,我需要考虑在每个州的每次旅行中存储Miles的良好架构。
创意#1: - 使用trip_id和48列创建1个表 - >每个较低的大陆州都有1个。
想法#2: - 使用trip_id,state_id(+带位置的附加表),total_miles 创建一个表解决方案1在存储数据(行数较少)方面效率似乎更高,而且我不确定一个表如何处理2百万次旅行+新表中每个州的多个条目。
有什么建议吗?
答案 0 :(得分:0)
首先,您对“状态”的定义可能会发生变化,添加/删除列非常麻烦。例如,“DC”可能是一个州。或者你可以扩展到加拿大。甚至带上阿拉斯加。向表中添加新行是微不足道的。
其次,对于简单的任务,例如将旅行的总里程相加,简单的聚合查询比添加48+列简单得多。
第三,那些可能不止一次重新进入州的旅行呢?想象一下有人从卡拉马祖(MI)开往上半岛的霍顿(密歇根州)。他们可以非常合理地穿过芝加哥,途经MI - > IN - > IL - > WI再回到MI。