2010-11-22 34 views
1

背景:SQL格拉夫效率

我使用的SQLite3來表示的有向圖。

方案1

我有兩個表:節點和協會

節點表保存有關所述特定節點的節點ID和數據。

關聯表包含父節點字段和子節點字段(以及主鍵ID)。

方案2

我有一個表:節點

節點表保存的節點ID,相關的節點數據,和一噸節點協會柱(約100),以保持另一個節點的ID。

問:

哪個更有效?是否有一個特定的圖形大小,比另一個更好?這兩種選擇的可擴展性有何經驗?

我最常用的查詢將是確定一個特定節點連接到的所有節點。

回答

3

去與方案1

方案2違反了基本的準則正常化,你很快就會被靠牆敲打你的頭,當你需要支持超過100個社團。它也很難做適當的SQL反對分析關係。

快!有10個和20個協會有多少個節點?該查詢是場景2的噩夢。方案1很容易。