0
我已經創建了包含字段Id,Name,ParentId(Id)的表& Leaf。我想要模擬樹狀結構,其中Leaf = 1的子元素/元素可以有更多的父元素。我如何在此表中模擬這種情況,或者我需要一個額外的表來處理這個事情。我希望這種模型能夠像堆棧溢出一樣實現標籤。在具有多個父項的子項的數據庫中實現樹
我已經創建了包含字段Id,Name,ParentId(Id)的表& Leaf。我想要模擬樹狀結構,其中Leaf = 1的子元素/元素可以有更多的父元素。我如何在此表中模擬這種情況,或者我需要一個額外的表來處理這個事情。我希望這種模型能夠像堆棧溢出一樣實現標籤。在具有多個父項的子項的數據庫中實現樹
除非「多於一個家長」有一個較小的上限,否則您需要另一個表,在這種情況下,您可以爲可能的父母數添加ParentID
字段,但不建議這樣做。
您似乎有多對多的關係。這可以如下建模:
Entity table
ID (Primary Key)
... - other entity fields
Parents table
ChildID (Foreign Key - Entity.ID)
ParentID (Foreign Key - Entity.ID)
的Leaf=1
實體被允許擁有多個父母唯一的是與數據庫觸發器在代碼級別最好的處理,或者可能是一個制約因素。
這似乎並不可能執行本的情況下直接創建另一個表(第三個)(其中將包含與Leaf=1
所有實體,無論是鏈接到Entity
條目或具有被限定只能有行,雖然我也不會提供任何建議 - 這很麻煩,而不是你設計數據庫的約束類型)。
僅供參考 - [so]上的標籤是**沒有**建模爲樹。 – Dukeling
我剛纔提到它。 – user2516394
只有'Leaf = 1'的元素纔能有多個父母?或者全部都是? –