小编Lee*_*337的帖子

PostgreSql 中的表继承是否适合这种情况?

首先让我们说,我是 PSQL 的新手并且来自 MSSQL 背景。我开始在 PSQL 中设计一个数据库。

所以我的主要目标是在这个数据库中有一个主模式,我将用它来控制某些服务,并有多个模式链接到这个,这将是不同的客户端数据。

我已经阅读了表继承,但从来没有遇到过任何人使用继承的效果类似于 DB Migrations 的效果。我想要实现的基本上是有一个默认架构,客户端架构都继承自默认架构。这对我来说,只需更改一个模式,就可以控制创建/删除/更改所有模式的对象。

这可行吗?有没有其他人有过做类似事情的经验?有人有什么建议吗?

更新

这就是我所做的。但是,我的印象是,如果您查看下面的代码,我需要做的就是模式“client1”,但是我错了。:D

所以无论如何,下面是我所做的脚本,它应该处理我现在需要的一切 - 我将使用脚本作为“client2”模式。是好是坏?

-- public schema --
CREATE TABLE public.Users (
   Id bigserial primary key,
   Login text unique,
   check (false) NO INHERIT 
);

CREATE TABLE public.Roles (
   Id bigserial primary key,
   RoleName text unique,
   check (false) NO INHERIT 
);

CREATE TABLE public.UserRoles (
   Id bigserial primary key,
   UserId bigint references users(id),
   RoleId bigint references roles(id),
   unique (UserId, RoleId),
   check (false) NO INHERIT 
);


-- client1 …
Run Code Online (Sandbox Code Playgroud)

schema postgresql database-design

7
推荐指数
1
解决办法
4635
查看次数

标签 统计

database-design ×1

postgresql ×1

schema ×1