2012-11-30 37 views
2

即時通訊一個非常新的PHP開發人員和即時通訊開發我的教育機構及其包含的工作人員,管理,學生,學生表現和付款細節的第一個系統。一個系統的多個vs單個數據庫

我不確定什麼是數據庫中最好的方法。我應該爲所有數據使用單個數據庫還是需要爲提到的包含創建多個數據庫。

你對此有何看法?

+2

首先,將不同的類別拆分成自己的數據庫似乎很方便。我剛開始創建「客戶服務」數據庫,然後是「質量保證文件」數據庫,「產品」數據庫,「網站」數據庫等等,我對此感到內疚。我認爲這很好,我可以創建只能訪問1個數據庫的用戶!但最終它導致了更多的工作,所有的事情都像這樣分崩離析,而且它更像是一種痛苦,把所有事情都歸併到1個數據庫中,而不會破壞事情,而不是從一開始就設計它的方式 – WebChemist

+2

1數據庫是首選。諸如員工,行政管理,學生,學生表現和支付細節等項目將成爲DB –

+0

1數據庫中的表格。您將深入到組權限,ACL和用戶角色的世界。在接近未來的項目時,您也會很感激這方面的知識。 –

回答

2

包含多個表的單個數據庫最好是imo。

因此,一個名爲「研究所」的數據庫或廣泛包含數據的東西。 其中,您有一張表,用於每個用戶,表演和付款。用戶應該包含指定用戶是職員,管理員還是學生的行。付款和表現應該包含一個鏈接到用戶ID的字段。

4

目前還不清楚你是什麼意思通過數據庫來開始:

  • 是一個數據庫內的模式?
  • 它是單個非羣集實例嗎?
  • 它是一個具有多個實例的羣集嗎? 或者它是合乎邏輯的,你並沒有真正詢問你的數據存儲機制的物理特性。

假設需求來自學校工作分配,一個數據庫,一個模式和多個表就足夠了。

如果您需要考慮高可靠性,冗餘性,故障轉移 - 這將是一個完全不同的答案,最有可能提示多個數據庫實例。

如果您關心的是高規模,那還是另一個答案,可能會提示集羣數據庫環境。

簡而言之,您的要求是什麼,有多少條記錄,有多少用戶,如何讓數據庫長時間停留數小時或幾天?

2

帶有許多表的單個數據庫將會執行。它也會更便於攜帶,因爲一些低成本的主機可能只給你一分貝或爲另一個(現在很少)增加價格。由於你所有的SQL都會更簡單,它肯定會更實用。

您可能會使用另一個數據庫的一個原因是,如果您克隆第一個數據庫,並在實際向公衆顯示之前使用它向網站內容顯示網站內容的更新。我的意思是,當管理員或編輯編寫新帖子或更新信息時,可以將其插入到db1中。該站點的副本可以顯示預覽讀取db1,然後管理員按下發布按鈕,您只需使用一條SQL指令就可以將db1克隆到db2。這樣你就有一個「分期」網站來測試條目,併爲其他人提供公共網站。你當然也可以用重複表格來做到這一點,但在這種情況下,兩個dbs對我來說感覺更清潔和簡單。

相關問題