1.模式
一个PostgreSQL数据库集群包含一个或多个已命名数据库。
一个数据库包含一个或多个已命名的模式,模式又包含表。
模式还可以包含其它对象,包括数据类型、函数、操作符等。同一个对象名可以在不同的模式里使用而不会导致冲突;比如,schema1和myschema都可以包含一个名为mytable的表。
database.schema.table
缺省时,创建表(以及其它对象)都自动放到一个叫做"public"的模式中去了。每个新数据库都包含一个这样的模式。因此,下面的命令是等效的:
CREATE TABLE products ( ... );
和
CREATE TABLE public.products ( ... );
除了public和用户创建的模式之外,每个数据库都包含一个pg_catalog模式,它包含系统表和所有内置数据类型、函数、操作符。
2.角色和用户
角色就相当于岗位:角色可以是经理,助理。
用户就是具体的人:比如陈XX经理,朱XX助理,王XX助理。
在PostgreSQL 里没有区分用户和角色的概念,"CREATE USER" 为 "CREATE ROLE" 的别名,这两个命令几乎是完全相同的,唯一的区别是"CREATE USER" 命令创建的用户默认带有LOGIN属性,而"CREATE ROLE" 命令创建的用户默认不带LOGIN属性