嗯,我正在開發一個可能涉及數千用戶的項目&我對數據庫沒有太多經驗,特別是涉及到實體之間的關係時。改進我的數據庫設計以實現未來的可伸縮性
讓我解釋一下我的場景。首先有一個用戶可以使用他的憑證登錄我們的系統。我們的系統中有一個模塊,可以讓他創建項目。所以這會帶來用戶表& Projects表之間的關係。
現在還有另外一個模塊,即團隊創建模塊,它完成它所說的。在可用會員名單中,他可以選擇他喜歡的人並將其添加到團隊中。所以有會員表&團隊。此外,成員可以是許多團隊的一部分,團隊可以有許多成員,「用戶」也可以是成員。
我有一個自己設計的數據庫,但我不知道它是好還是壞。此外,如果有人能夠指點我的好教程,我將非常感謝,該教程展示瞭如何插入或更新到涉及關係的表格中。
這裏是我的設計至今:
更新
與他人IRC的討論後,我想出了一個修改後的設計。我合併了「用戶」&「成員」表,因爲用戶也是成員。
我的問題仍然是相同的,我是在正確的軌道?
是的,你基本上正在跟蹤。但是,一個成員真的只能成爲一個項目的一部分嗎?那裏不應該有多對多的關係嗎?您還應該定義自然鍵。 http://en.wikipedia.org/wiki/Natural_key –
@JonBoulineau這是一個有趣的問題(我之前沒有想到它;這是一種有趣的想法,是否應該在成員和項目之間建立多對多的關係) 。那麼一個成員可以創建許多項目,也可以成爲其他許多項目的一部分(我猜也包括他的項目)。 – user1601973