私は、1つの特別なノードを含む有向グラフをモデル化する方法に関する意見を探しています。特別なセンターノードを持つ有向グラフのモデリング
特別ノード:
- は、それにつながるすべてのエッジを持つことはできません。
- 取り外しできません。
現在の設計:
テーブル:ノード、エッジ。エッジには2つの列があります。 from_node_idおよびto_node_idは、それぞれNodesテーブルのレコードを参照します。
Nodesテーブルの最初のレコードとして特別なノードを格納するのではなく、データベースのクエリとは別にレコードを作成しないようにしました。エッジ表では、NULLはfrom_node_id列で特別な意味を持ち、センターノードを参照します。
このデザインを使用する私の動機は、センターノードレコードを削除/変更から保護すること、またはエッジテーブルのto_node_id列で参照することを心配する必要がないということでした。これにより、エッジが同じノードに出入りするのを自動的に防止します。このデザインには、from_node_idとto_node_idを合成プライマリ・キーにすることができないなど、いくつかの欠点があります。
私は現在、センターノードを実際のレコードにして、関連するデータベースメソッドでそのノードのチェックを作成することに傾いています。このデザインについての最善の方法は何ですか?
このデザインの使用方法についてコメントできますか? – gahooa