我可以使用SQLite对任意图(即带有循环的逻辑映射)建模吗?
我是SQL新手,学习了邻接列表、嵌套集、闭包表,但据我所知,这些解决方案通常适用于非循环数据 我知道这类问题可能更适合像Neo4j这样的图形数据库引擎,我也在探索这一点。但是对于这个问题,我特别想知道我是否可以在SQLite中实现这个目标 在给出可能的答案之前,请帮助我理解如何更好地定义或说明问题。一旦问题的定义被细化,然后给我指出正确的方向(技术、参考资料),让我试着找出它 目标:我可以使用SQLite对任意图(即带有循环的逻辑映射)建模吗?,sqlite,database-design,data-modeling,Sqlite,Database Design,Data Modeling,我是SQL新手,学习了邻接列表、嵌套集、闭包表,但据我所知,这些解决方案通常适用于非循环数据 我知道这类问题可能更适合像Neo4j这样的图形数据库引擎,我也在探索这一点。但是对于这个问题,我特别想知道我是否可以在SQLite中实现这个目标 在给出可能的答案之前,请帮助我理解如何更好地定义或说明问题。一旦问题的定义被细化,然后给我指出正确的方向(技术、参考资料),让我试着找出它 目标: 维护区域列表及其连接方式 区域可以有不同的类型:国家、公路、州、城市、社区 区域可以循环连接(无方向) 区域可以
一如既往,感谢您抽出时间阅读并提出建设性意见。是的,可以使用SQLite存储此类数据。 这是不实际的,您可能会有性能问题。如果您计划存储大量这样的数据,并且想要一个可伸缩性好的解决方案,那么您应该选择一些graph DB 如果要存储约1000个节点,那么可以在SQLite中使用简单的不动产 特别是因为更新次数很少,所以可以预先计算距离。因此,您不必每次都重新计算它,只需从数据库加载即可 我认为你应该用图表来表示你的问题 节点可以是“门”和它们之间距离的边。 您可以轻松地将其存储在关系数据库中。(区域(Id,名称),门(Id,区域1,区域2)门距离(门1,门2,距离)) 如果已存储这些数据,则可以计算从每个门到其他门的最短路径。您可以将其存储在新表中。(距离(门1、门2、路径、距离)) 要计算最短路径,您可以找到不同的算法: 在此之后,您将获得每对门之间的最短路径 从现在起唯一的问题是从你的出发地到你的目的地的哪个门 如果你不想这么精确,你就选一条最短的路。否则,您必须保持与区域起点的门距离。 A.您可以假设从区域的中心开始,因此可以存储与中心的门距离 B通过存储精确的门位置并计算从精确起点到门的距离,可以更精确 在这两种情况下,您都应该在起始区域和目标区域选择成本最低的门: 总成本:(步行到门的距离)+(起始门到目的地的门路径)+(在目的地区域步行到目的地)
我会这样做。我希望我能帮忙,玩得开心 有多种方法可以对这种图形进行建模。请说明您将在某些编程语言中使用的数据结构。