Let's start off by saying, I'm new to PSQL and coming from a MSSQL background. I'm starting to design a DB in PSQL.

So my main aim is to have a Main schema in this DB, which I am going to use to control certain services with, and have multiple schema's linked to this, which is going to be the different clients data.

I have read up on table inheritance, but have never came across anyone using inheritance with an effect similar to that of DB Migrations. 
What I want to achieve is basically have a default schema, with the clients schema's all inheriting from the default. This to me gives control of creating/dropping/altering objects to all schema's by just altering a single schema. 

Could this be viable? Has anyone else had any experience doing something similar? Does anyone have any suggestion?

**UPDATE**

This is what I've done. However, I was under the impression that, if you look at the below code, schema 'client1' will be all I need to do, however I was wrong. :D

So anyway, below is the script I have done, which should take care of everything I need for now - I am going to use the script for the 'client2' schema. Good or Bad?

	
    -- 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 schema --
	CREATE TABLE client1.Users (
	)
	INHERITS(public.Users);

	CREATE TABLE client1.Roles (
	)
	INHERITS(public.Roles);

	CREATE TABLE client1.UserRoles (
	)
	INHERITS(public.UserRoles);


	-- client2 schema --
	CREATE TABLE client2.Users (
	  primary key (id),
	  Unique (Login)
	)
	INHERITS(public.Users);

	CREATE TABLE client2.Roles (
	  primary key (id),
	  Unique (RoleName)
	)
	INHERITS(public.Roles);

	CREATE TABLE client2.UserRoles (
	  primary key (id),
	  foreign key (UserId) REFERENCES client2.Users(id),
	  foreign key (RoleId) REFERENCES client2.Roles(id),
	  unique (UserId, RoleId)
	)
	INHERITS(public.UserRoles);