2017-10-20 109 views
1

我正在尋找使用MySQL建模數據庫的答案,但找不到它。mysql一個或多個數據庫?

什麼是最佳實踐,建模1數據庫和所有表&數據在1儲存庫,或分裂成多個數據庫來處理每個東西,如模塊?

例如,我有55個表的1個項目,而且會更多,而我會用php開發一個域中的服務;到目前爲止還開始了另外一個包含22個表格而對於這兩者,我使用不同的用戶登錄,信息和數據;並像6或10表&關係在佈局中組織(謝謝你的MySQL方案支持這一點)。但是如果我將兩個用戶句柄拆分成一個外部數據庫並用這個句柄處理這兩個數據庫呢?

我只是想象如果我將所有的佈局分割到其他數據庫中,在PHP中編程(使用數月並且有很多提前)是噩夢,但易於維護。我對嗎?

回答

1

您應該只使用一個數據庫和一個數據庫,除非您有特定的理由違反該規則。正當的理由的例子包括:

  • 你已經有了一個多租戶應用程序,該應用程序不共享數據的情況下,讓你傳播出來跨多個數據庫,以消除單一故障點。即使這樣,這些實例也只是相同基本模式的克隆。
  • 出於性能原因,或者因爲存儲限制,無法通過其他方式以經濟高效的方式解決,您需要在多個實例中分割數據。這些碎片共享一個模式,但只是完整數據集的一部分。
  • 您需要爲數據倉庫和/或報告原因創建副本或衍生數據集。這些實例可能具有完全不同的模式,因爲它們圍繞讀取活動進行優化,而不是寫入。

除非你正在做一些真正涉及的事情,推動MySQL的限制,堅持一個數據庫。你的開發人員會很感激。

對於非平凡應用程序,五十六十張表格並不是很多表格。有些應用程序的數量超過了數百個,但是使用正確的命名約定和良好的文檔,這不是問題。一個好的命名系統意味着你可以快速搜索你想要的內容,再加上通過Tab鍵自動完成的選擇,你可以直接到你想去的地方。

+0

現在,我是唯一的設計師和開發人員。但我理解你的觀點。 – Epistomai

+1

因爲你沒有選擇,通常會因爲規模(和成功!)而強加給你的東西,而不是擁有一些過度工程化的解決方案,從來沒有真正的必要。保持儘可能簡單,但不簡單。 – tadman

+0

另一個可能的項目符號:不同的用戶可以被授予不同的(或不)訪問不同的'DATABASEs'。當然,這可以在'TABLE'級別完成,但數據庫級別看起來更清晰。 –

相關問題