Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 行程数据库模式_Sql_Database_Postgresql_Schema - Fatal编程技术网

Sql 行程数据库模式

Sql 行程数据库模式,sql,database,postgresql,schema,Sql,Database,Postgresql,Schema,您将如何着手为必须存储旅行行程的旅行社设计数据库模式 旅行有很多项目(类型:公共汽车、出租汽车、酒店、航班等) 我的问题是,在某些情况下,项目可能具有具有相同“预订号”的子项目(如航班段),等等 我当前的解决方案是使用PostgreSQL JSON数据类型存储项(及其子项)元数据。这是最好的办法吗?感觉就像我把所有有用的信息塞进了一个无模式的表单 这个问题以前一定被tripit、expedia或您当地的旅行社解决过很多次——我只是找不到任何文档/参考资料。想法?您需要为您试图描述的每个概念上不

您将如何着手为必须存储旅行行程的旅行社设计数据库模式

旅行有很多项目(类型:公共汽车、出租汽车、酒店、航班等)

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

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


这个问题以前一定被tripit、expedia或您当地的旅行社解决过很多次——我只是找不到任何文档/参考资料。想法?

您需要为您试图描述的每个概念上不同的“事物”创建一个表。不要费心把所有的东西都归到一个“项目”类别下,因为我不明白为什么这样做只会使问题复杂化

对于这个问题,我肯定不会在这样一个列中处理一大堆JSON数据。使用标准的、规范化的关系数据库完成这一切

  • TRIP
    有一个
    CLIENT
    CLIENT
    有零到多个
    TRIP
    s
  • 行程
    有零到多个
    航班
    s,而
    航班
    有一个
    行程
  • 每个
    航班
    都有一个
    预订号
    属性
  • 航班
    有一对多的
    航段
    s,而
    航段
    有一个
    航班
  • 每个
    LEG
    都有
    START
    END
    属性

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

这看起来像一个简单的关系分解问题——即归一化。如果没有自然密钥,请使用合成密钥。我想制作相同的解决方案,欢迎提供任何帮助。