首先让我们说,我是 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)