2014-03-05 35 views
1

我想使用關係模式來表示網絡。使用關係模式表示網絡

我的網絡的實體是:

  1. 節點:網絡上的一個點。
  2. :弧的有序序列:2個節點
  3. 路徑之間的直接連接。

是一個適合表示這樣的網絡的關係模型嗎?

我正在考慮SQL/No SQL作爲選項。我的數據量不會以非常快的速度增長。我不想根據任何預定義的查詢模式選擇SQL/No SQL。

回答

1

通常表示網絡的最佳工具是像Neo4j這樣的圖形數據庫。

但是,當你想在SQL中完成它時,節點(或者圖論中的Vertex)和Arc(正確地稱爲Edge)會得到一個表。 A Vertex將僅包含關於頂點本身的數據,並且不包含關於其與其他關係的信息。 Edge將包含它鏈接的兩個節點的主鍵,以及關於鏈接本身的任何元信息。

當您需要存儲多個節點的路徑時,您應該使用兩個表。 A Path表中包含path-id和有關整個路徑的任何數據,另一個表PathVertex由Path-ID,該路徑中的數字和Edge表的主鍵組成,其中包含路徑組成的所有位置。