我正在创建一个包含大约40个不同表的数据库。
我听说有人将表格分组到数据库' schemas' - 在数据库中使用不同模式有什么含义?一个模式中的表是否仍然与另一个模式相关?不同模式之间的功能差异是什么?
答案 0 :(得分:1)
我假设你在谈论SQL Server。您可以在不同模式中的表之间进行连接和引用。我发现它主要用于可视化组织和/或管理对象的权限(您可以在模式级别分配权限)。
如果你担心做dbo.table vs custom.table会产生任何负面影响 - 我认为你不会遇到任何负面影响。
答案 1 :(得分:1)
模式只是数据库对象的集合。它们对于保持对象集的分离很有用。
始终至少有一个架构。对于SQL Server,它名为dbo
。
拥有多个模式的一个含义是您必须管理各种模式的权限。这通常通过与架构相关联的角色来完成。
一个模式中的对象可用于另一个模式中的对象,并且在编写使用多个模式中的对象的查询时不会有性能损失。
答案 2 :(得分:1)
SSMS中的模式在哪里?它们被正确放置在安全选项卡下。
让我们使用AdventureWorks数据库。
如果您在架构级别分配安全性,则购买用户只能访问购买表,销售人员只能访问销售表。
事实上,如果你正确设置,他们甚至不会看到其他表。
如果将模式与在文件组上创建表/索引相结合,现在可以将所有销售人员放在文件组销售和采购文件组上。
IE - 传播I / O负载。
简而言之,我认为模式是一个未知且很少使用的功能。
查看我关于此事实的博客文章。