ノードとエッジを持つ無向グラフ (おそらく高密度) であるデータ構造があります。ノード I と J の間のエッジには追加のデータが関連付けられているため、クエリを実行するときにそのエッジを一意に識別し、I と J の間にエッジが存在するかどうかをすばやく判断できるようにしたいと考えています。
2 つのテーブルを使用してこれを達成することにしました。
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)
ここで、すべてのエッジの主キーは、 2 つのノード ID を取るハッシュ関数によって計算されます。
私の質問:
- エッジ ID を計算するための適切なハッシュ関数を見つけるにはどうすればよいですか?
- 私が見落としているかもしれないこのアプローチの主な欠点はありますか?