您如何为必须存储行程路线的旅行社设计数据库架构?
TRIPS有许多项目(类型:公交车,租车,酒店,航班等)
我的问题是,在某些情况下,项目可能包含具有相同“预订编号”的子项目(例如航段)等。
我目前的解决方案是使用PostgreSQL JSON数据类型存储项目(及其子项目)元数据。这是最好的方法吗?感觉就像我把所有有用的信息塞进一个无模式的形式。
此问题之前必须经过多次修复,例如tripit,expedia或您当地的旅行社 - 我只是找不到任何文档/参考资料。想法?
答案 0 :(得分:1)
您需要为您尝试描述的每个概念上不同的“事物”创建一个表。不要打扰在“ITEM”类别下对所有内容进行分组,因为我不明白为什么会做任何事情而不会使问题复杂化。
我绝对不会像这个问题那样在列中做一大堆JSON数据。使用标准的规范化关系数据库完成所有工作。
TRIP
有一个CLIENT
,CLIENT
有0到多个TRIP
TRIP
有0到多FLIGHT
个,而FLIGHT
有一个TRIP
FLIGHT
都有RESERVATION_NUMBER
属性FLIGHT
有一对多LEG
个,LEG
有一个FLIGHT
LEG
都有START
和END
属性希望你能在这里得到这个想法,这样你就可以将这个概念应用到你想要记录的有关旅行的其他类型的事情(公共汽车,汽车,酒店等)。