2011-12-12 19 views
0

我正在研究涉及多個應用程序的數據庫設計。Multi App One數據庫

例如:大學

  1. 系統信息(學生,年級,學科,專業,等等),圖書館(成員,書籍,類別等)

  • 系統信息

    大學的學生和圖書館的成員具有相同的數據。因此,爲了獲得同步數據,我將兩個應用程序的數據庫都設計爲一個數據庫,這意味着來自兩個應用程序的表都混合在一起。

    有沒有更好的解決方案呢?

  • +0

    對此沒有更好的解決方案。只要確保這兩個應用程序不具有它不需要的對象的讀/寫訪問權限即可。 –

    +0

    那麼,如果會有更多的應用程序將被添加? 這意味着在一個數據庫中將會有n個應用程序的數據庫。 我想爲每個應用程序的表使用前綴。 – Kiddo

    回答

    1

    大多數現代SQL DBMS支持模式。架構本質上是一個可以用於任何目的的容器。一個明顯的目的是作爲表,視圖,存儲過程等容器,在功能上密切相關。

    PostgreSQL's CREATE SCHEMA syntax

    所以,你可以爲每個的這些東西是不同的模式。

    • 管理
    • 課外活動
    • 健康和保健
    • 體育

    由於每個模式是一個數據庫對象,通常可以GRANT和REVOKE特權架構級別。這使得管理具有個人可識別信息的模式變得更加容易,特別是像「健康和健康」這樣的模式。 (實際上,對於健康數據,您可能需要更強的隔離。)

    應用程序的數量並不一定與模式的數量有關。我已經開發了一個運行數據庫,其中有很多模式,但有數百個應用程序,在過去的三十年中以至少25種語言進行編程。