【问题标题】:Multi App One Database多应用一数据库
【发布时间】:2011-12-12 21:02:13
【问题描述】:

我正在从事涉及多个应用程序的数据库设计。

例如:

  1. 大学系统信息(学生、年级、科目、专业等)
  2. 图书馆的系统信息(成员、书籍、类别等)

大学的学生和图书馆的成员拥有相同的数据。

因此,为了获得同步数据,我将两个应用程序的数据库设计为一个数据库,这意味着两个应用程序的表混合在一起。

有没有更好的解决方案?

【问题讨论】:

  • 没有更好的解决方案。只需确保这两个应用程序对其不需要的对象没有读/写权限即可。
  • 那么,如果有更多的应用要添加呢?这意味着一个数据库中将有 n-apps 的数据库。我想为每个应用程序的表使用前缀。

标签: database


【解决方案1】:

大多数现代 SQL dbms 都支持模式。架构本质上是一个容器,您可以将其用于任何目的。一个明显的目的是作为功能密切相关的表、视图、存储过程等的容器。

PostgreSQL's CREATE SCHEMA syntax

因此,您可以为这些事物中的每一个创建单独的架构。

  • 图书馆
  • 管理
  • 课外活动
  • 健康和保健
  • 运动

由于每个架构都是一个数据库对象,您通常可以在架构级别授予和撤销权限。这使得管理其中包含个人身份信息的模式变得更加容易,尤其是像“健康和保健”这样的信息。 (事实上​​,对于健康数据,您可能需要更强的隔离。)

应用程序的数量不一定与模式的数量有关。我曾在一个操作数据库上工作过,该数据库有很多模式,但有数百个应用程序,在过去 30 年中至少使用 25 种语言进行了编程。

【讨论】:

    猜你喜欢
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多