我正致力于涉及多个应用程序的数据库设计。
例如:
大学的学生和图书馆的成员都有相同的数据。
因此,为了获得同步数据,我将两个应用程序的数据库设计到一个数据库中,这意味着两个应用程序中的表混合在一起。
对此有更好的解决方案吗?
答案 0 :(得分:1)
大多数现代SQL dbms都支持模式。模式本质上是一个可以用于任何目的的容器。一个明显的目的是作为表,视图,存储过程等的容器,在功能上密切相关。
PostgreSQL's CREATE SCHEMA syntax
所以你可以为这些事情创建单独的模式。
由于每个模式都是数据库对象,因此通常可以在模式级别获得GRANT和REVOKE权限。这样可以更轻松地管理其中包含个人身份信息的模式,尤其是“健康与保健”之类的模式。 (事实上,对于健康数据,您可能需要更强的隔离。)
应用程序的数量不一定与模式的数量有任何关系。我已经开发了一个具有相当多模式的操作数据库,但有数百个应用程序,在三十年内以至少25种语言编程。