背景
我使用SQLite3来表示有向图。
情景1 :
我有两个表:节点和关联
Node表包含节点ID和与特定节点相关的数据。
关联表包含父节点字段和子节点字段(以及主键ID)。
情景2 :
我有一个表:Node
节点表包含节点ID,相关节点数据和大量节点关联列(大约100个)以保存另一个节点的ID。
问题:
哪个效率更高?是否有一个特定的图表大小,一个变得比另一个更好?有关这两个选项的可扩展性的任何经验吗?
我最常见的查询是确定一个特定节点所连接的所有节点。
答案 0 :(得分:3)
使用方案1。
场景2违反了基本的规范化指南,当您需要支持100多个协会时,您很快就会撞到墙上。执行适当的SQL以分析关系也很困难。
快速!有多少个节点有10个和20个关联?该查询是场景2的噩梦。场景1很容易。