【发布时间】:2014-01-21 18:39:16
【问题描述】:
我正在创建一个包含大约 40 个不同表的数据库。
我听说有人将表分组到数据库“模式”中 - 在数据库中使用不同模式有什么影响?来自一个模式的表是否仍然与另一个模式相关?不同架构之间的功能差异是什么?
【问题讨论】:
-
看看这里,这是一些有趣且内容丰富的blog.sqlauthority.com/2009/09/07/…
标签: sql-server schema
我正在创建一个包含大约 40 个不同表的数据库。
我听说有人将表分组到数据库“模式”中 - 在数据库中使用不同模式有什么影响?来自一个模式的表是否仍然与另一个模式相关?不同架构之间的功能差异是什么?
【问题讨论】:
标签: sql-server schema
模式位于 SSMS 中的什么位置?它们被正确地放置在安全选项卡下。
让我们使用 AdventureWorks 数据库。
如果您在架构级别分配安全性,采购用户将只能访问采购表,而销售人员将只能访问销售表。
事实上,如果你设置正确,他们甚至不会看到其他表。
如果您将架构与在文件组上创建表/索引相结合,现在您可以将所有销售人员置于文件组销售和文件组采购上。
IE - 分散 I/O 负载。
简而言之,我认为模式是一个未知且很少使用的功能。
查看我关于这个事实的博客文章。
【讨论】:
我假设您在谈论 SQL Server。您可以在不同模式中的表之间连接和引用。我看到它主要用于视觉组织和/或管理对象的权限(您可以在架构级别分配权限)。
如果您担心执行 dbo.table 与 custom.table 的任何负面影响 - 我想您不会遇到任何负面影响。
【讨论】:
模式只是数据库对象的集合。它们对于保持对象集的分离很有用。
总是至少有一个模式。对于 SQL Server,它被命名为 dbo。
拥有多个架构的一个含义是您必须管理各种架构的权限。这通常通过与架构关联的角色来完成。
一个模式中的对象可用于另一个模式中的对象,编写使用来自多个模式的对象的查询不会降低性能。
【讨论】: