Venot Asked:2021-10-14 21:42:22 +0000 UTC2021-10-14 21:42:22 +0000 UTC 2021-10-14 21:42:22 +0000 UTC 什么是数据库中的模式? 772 postgreSQL 中的模式是什么?它应该在创建数据库后立即创建吗?这是表格、内容、权限等的逻辑排列。然后可以有很多模式,它们可以共享公用表? sql 1 个回答 Voted Best Answer Мелкий 2021-10-14T22:50:12Z2021-10-14T22:50:12Z 模式类似于操作系统级别的目录,只是模式不能嵌套。 模式是结构化数据库对象的附加级别。类似于文件系统中的目录或namespace编程中的命名空间 ( )。但它们不能嵌套。 使用文件系统和网络的类比:有 CSS 样式文件,一些 JS。没有什么可以阻止它们被放置在 Web 服务器的根目录中。但通常为了方便起见,它们仍然放在子目录中。 创建新数据库后,您将拥有一个预定义架构public,有权为所有用户创建新对象。下一步做什么 - 该基础架构的开发人员的决定,忽略架构并将所有内容放入public,根据架构以某种方式构建,您public甚至可以删除架构。 制作表格: users user_settings user_favorites blog_posts blog_comments 或者: users users.settings users.favorites blog.posts blog.comments 基地本身并不重要。模式是一个逻辑级别,就像表名一样。 大多数项目不使用模式。 权限:模式具有权限create- 谁可以创建新对象,以及usage- 谁可以访问该模式中的对象。因此,开发人员可以方便地创建一个单独的模式user_tmp并将其从备份中排除,并且不授予其他模式的权限create- 从而迫使应用程序表通过您拥有的通常的迁移过程。 为了完整起见:public如果在数据库中删除了该方案,则该方案可能不存在,这在template选项中指定create database
模式是结构化数据库对象的附加级别。类似于文件系统中的目录或
namespace
编程中的命名空间 ( )。但它们不能嵌套。使用文件系统和网络的类比:有 CSS 样式文件,一些 JS。没有什么可以阻止它们被放置在 Web 服务器的根目录中。但通常为了方便起见,它们仍然放在子目录中。
创建新数据库后,您将拥有一个预定义架构
public
,有权为所有用户创建新对象。下一步做什么 - 该基础架构的开发人员的决定,忽略架构并将所有内容放入public
,根据架构以某种方式构建,您public
甚至可以删除架构。制作表格:
users
user_settings
user_favorites
blog_posts
blog_comments
或者:
users
users.settings
users.favorites
blog.posts
blog.comments
基地本身并不重要。模式是一个逻辑级别,就像表名一样。
大多数项目不使用模式。
权限:模式具有权限
create
- 谁可以创建新对象,以及usage
- 谁可以访问该模式中的对象。因此,开发人员可以方便地创建一个单独的模式user_tmp
并将其从备份中排除,并且不授予其他模式的权限create
- 从而迫使应用程序表通过您拥有的通常的迁移过程。为了完整起见:
public
如果在数据库中删除了该方案,则该方案可能不存在,这在template
选项中指定create database