2013-11-23 27 views
1

目標:對於簡單的toDo應用程序,需要存儲任務和可能的子任務(模型1)。將遞歸數據存儲在一個或兩個表中更好嗎?

有一個使用遞歸關係或使用兩個表的「更好」嗎?您認爲的優點/缺點?對性能,可用性等產生正面/負面的影響。以這種方式使用遞歸方法是否正確?

模型1:任務子任務在兩個表中更多子任務級別不是必需的。

enter image description here

模型2:任務子任務在一個表。順便說一下,這是正確的,這個設計有無限的子任務 - 級別(旁邊的技術bounderies)?任務的子任務,子任務-...

enter image description here

+0

不要讓它比nessesary難!任務是一項任務,有(如我所見)沒有區別,只有可能的父母。所以堅持模型2. –

+1

你必須修改模型2.你不想要一個子任務ID,你想要一個父任務ID。 –

+0

@DanBracuk,thx,你一定。 –

回答

1

我不知道爲什麼你形成你這樣問,什麼迷惑你。
數據庫的一個經典示例是存儲員工的示例。在員工表中,您還可以管理經理,也是員工。所以你所描述的模型2並不是「怪異」的東西。
自加入是一種常見查詢。
嘗試以一種方式定義表格,這樣可以使查詢儘可能簡單,並且您的模型易於理解和擴展。
在你的情況下,如果每個子任務都有其他任務沒有的額外信息,你應該定義第二個表。
在描述它的模型1中,您只需複製主表的列。這不是一個好的設計IMO。
據我所見,模型2符合你所要做的。

+0

好吧,我的第一個設計非常不同(更多屬性)。然後我清理了一下,其他的想法和瞧,子任務就像是任務。因爲我以前從來沒有做過自我加入,所以我有點擔心,因爲它看起來很優雅,所以我監督着一些事情。無論如何,你對任務和子任務之間不同信息的爭論有助於我清楚地看到它。該應用程序的功能仍然是開放的,需要在任務或子任務中存儲什麼類型的信息。子任務的深度還不清楚。目標是儘可能保持簡單。謝謝! –

相關問題