2009-12-18 44 views
4

我有一个PostgreSQL数据库,其表格被划分为多个模式。每个模式都有一组不同的访问控制;例如,一个模式对于普通用户可能是只读的,而他们被允许在另一个模式上创建表。模式也充当命名空间,因此用户不必担心在创建新表时复制现有表。什么是PostgreSQL'schema'的MySQL等价物?

我想用MySQL创建一个类似的设置。它有一个相同的概念吗?如果不是,我怎样才能最密切地模拟它?我不想使用多个数据库。

回答

9

Database应该是最接近的一个。

+1

这是正确的,但它们有缺点。该数据库旨在用于部署到各种现有群集。使用多个数据库使得更复杂,因为运行部署的用户不能要求他们的管理员创建数据库;他们自己需要CREATE DATABASE权限。另外,如果我想保留当前的模式名称,那么我将与该群集上的现有数据库发生冲突。因此,如果可能的话,我倾向于避免多个数据库。 – DNS 2009-12-18 02:27:58

+1

这就是为什么我说它是最接近的,并不等同。 – 2009-12-18 10:33:33

7

前缀表名是大多数MySQL驱动的应用程序所做的。

+4

目前尚不清楚为什么这是downvoted;考虑到我的问题说多个数据库不可取,这个答案并不合理。 – DNS 2009-12-18 14:51:26

+2

我不是downvoter,但一个猜测:前缀表名与模式没有任何相同之处。有没有办法设置权限,你是排除某些表名,引用规则*完全*不同,没有办法设置一个seach补丁等等,等等。使用不同的数据库至少涵盖其中的几个,但最终你不能在没有它的系统中模拟它。 – 2009-12-19 12:54:05

相关问题