在具有不同模式的数据库中创建表有什么含义?

时间:2014-01-03 23:39:09

标签: sql-server schema

我正在创建一个包含大约40个不同表的数据库。

我听说有人将表格分组到数据库' schemas' - 在数据库中使用不同模式有什么含义?一个模式中的表是否仍然与另一个模式相关?不同模式之间的功能差异是什么?

3 个答案:

答案 0 :(得分:1)

我假设你在谈论SQL Server。您可以在不同模式中的表之间进行连接和引用。我发现它主要用于可视化组织和/或管理对象的权限(您可以在模式级别分配权限)。

如果你担心做dbo.table vs custom.table会产生任何负面影响 - 我认为你不会遇到任何负面影响。

答案 1 :(得分:1)

模式只是数据库对象的集合。它们对于保持对象集的分离很有用。

始终至少有一个架构。对于SQL Server,它名为dbo

拥有多个模式的一个含义是您必须管理各种模式的权限。这通常通过与架构相关联的角色来完成。

一个模式中的对象可用于另一个模式中的对象,并且在编写使用多个模式中的对象的查询时不会有性能损失。

答案 2 :(得分:1)

SSMS中的模式在哪里?它们被正确放置在安全选项卡下。

让我们使用AdventureWorks数据库。

如果您在架构级别分配安全性,则购买用户只能访问购买表,销售人员只能访问销售表。

事实上,如果你正确设置,他们甚至不会看到其他表。

如果将模式与在文件组上创建表/索引相结合,现在可以将所有销售人员放在文件组销售和采购文件组上。

IE - 传播I / O负载。

简而言之,我认为模式是一个未知且很少使用的功能。

查看我关于此事实的博客文章。

http://craftydba.com/?p=4326

enter image description here