我有一个数据结构,它是一个带有节点和边的无向图(可能是密集的)。节点 I 和 J 之间的边将具有与之关联的附加数据,我希望能够在查询时唯一标识该边,并能够快速确定 I 和 J 之间的边是否存在。
我决定使用两个表来完成此操作:
Table Nodes
-----------
node_id PK
...
(additional fields)
Table Edges
-----------
nodes_hash(node_id, node_id) PK
edge_thickness
...
(additional fields)
其中每条边的主键将由nodes_hash(node_id, node_id)
采用两个节点 ID 的哈希函数计算。
我的问题:
- 我如何想出一个好的散列函数来计算边缘 ID?
- 我可能忽略了这种方法的任何主要缺点?