行程数据库模式

时间:2014-12-25 05:48:18

标签: sql database postgresql schema

您如何为必须存储行程路线的旅行社设计数据库架构?

TRIPS有许多项目(类型:公交车,租车,酒店,航班等)

我的问题是,在某些情况下,项目可能包含具有相同“预订编号”的子项目(例如航段)等。

我目前的解决方案是使用PostgreSQL JSON数据类型存储项目(及其子项目)元数据。这是最好的方法吗?感觉就像我把所有有用的信息塞进一个无模式的形式。

Query

此问题之前必须经过多次修复,例如tripit,expedia或您当地的旅行社 - 我只是找不到任何文档/参考资料。想法?

1 个答案:

答案 0 :(得分:1)

您需要为您尝试描述的每个概念上不同的“事物”创建一个表。不要打扰在“ITEM”类别下对所有内容进行分组,因为我不明白为什么会做任何事情而不会使问题复杂化。

我绝对不会像这个问题那样在列中做一大堆JSON数据。使用标准的规范化关系数据库完成所有工作。

  • TRIP有一个CLIENTCLIENT有0到多个TRIP
  • TRIP有0到多FLIGHT个,而FLIGHT有一个TRIP
  • 每个FLIGHT都有RESERVATION_NUMBER属性
  • FLIGHT有一对多LEG个,LEG有一个FLIGHT
  • 每个LEG都有STARTEND属性

希望你能在这里得到这个想法,这样你就可以将这个概念应用到你想要记录的有关旅行的其他类型的事情(公共汽车,汽车,酒店等)。