我的Postgres数据库将侧重于多学科组织。项目的轴心是:一个人可以属于同一组织的diverses学科(例如:艺术、体育),这个组织需要一个独特的中央Web应用程序。
我的第一个意图是只建模一个数据库,但是规模很大,关系非常复杂和冗余,然后我的第二个和当前的方法如下:
People_Schema包含通用表,如tbl_person、tbl_city、tbl_ocupation等。Arts_Schema包含tbl_art_center、tbl_enrollment(art_center_id FK, person_id FK)等表。Sports_Schema包含tbl_sport、tbl_team、tbl_team_member(team_id FK, person_id FK)等表。问题是:最后一种方法是个好主意吗?或者,考虑到多租户预期、RESTfull API、DreamFactory后端作为服务和Amazon,我还没有看到模式之间的连接查询或其他痛苦的影响。
编辑:我的方法是从邮政正式文件中获得的:如果项目或用户是相互关联的,并且应该能够使用彼此的资源,那么它们应该放在同一个数据库中,但可能放在单独的模式中。
发布于 2015-06-18 17:01:26
架构用于组织结构和名称空间。通过名称空间,我的意思是您可以在少数地方使用类似的名称表。使用模式的另一个特性是对该架构的附加访问控制。根据您的数据模型,您将有连接。您已经隐式地使用了架构。在PostgreSQL数据库中定义了“搜索路径”。
因此,每次键入create时,都使用默认模式。对于查询,您应该使用表别名,因此您可能只向每个表添加模式名称,但是如果使用别名,则您的查询应该与模式相同或不带模式。
我没有使用以上功能的经验(多租户db和amazon以及.)
https://dba.stackexchange.com/questions/102817
复制相似问题