我需要遍歷和更新SQL中的圖形。更新SQL中的圖形數據
要把它放到前瞻性,我舉一個例子:
- 每家公司可以代表對某一問題的其他公司。
- 公司可以代表對方,但沒有就相同主題
這是假定像表:
companies(id)
,representations(source_id, destination_id, subject)
。
但是規則是,當我的公司不再代表你的某個主題時,那麼沒有一家公司可以代表我的公司在同一主題上。
我希望你明白我的意思。
因此,與喜歡簡單的數據:
C1:
--sell--> C2
--pay--> C3
C2:
--sell--> C3
--pay--> C1
C3:
--mail--> C1
--sell--> C4
C4:
--deliver-->C1
現在,我們刪除了代表(我應該把它叫做關係)C2--sell-->C3
我們應該結束了以下結構([X]
- 刪除):
C1:
--sell--> C2
--pay--> C3
C2:
[X]--sell--> C3
--pay--> C1
C3:
--mail--> C1
[X]--sell--> C4
C4:
--deliver-->C1
所以問題是如何選擇所有的公司,這是從我的鏈下來的特定主題?
我想遞歸CTE表達式是唯一的方法。
NOTES:
- 結構沒有一棵樹,它是一個有序循環圖。
- 圖形數據庫現在不是一個選項(這只是系統的一小部分)
- 更新不需要是立即就可以的,它們可以保持一致(談論幾秒鐘分鐘)。
圖中有周期嗎?如果圖是非循環的,這有助於公平的一點。使用帶有SQL CTE的循環圖,可能會很「有趣」。 – 2012-08-15 07:28:14
給出示例數據來演示正常情況和拐角情況可能有助於獲得確切答案。然後我們有無用的數據來處理,而不是從你的描述中推斷細節。 – MatBailie 2012-08-15 07:53:57
這是循環的好或壞:( – 2012-08-15 07:55:30