2010-02-05 84 views
4

我正在创建一个没有传统约束的全新数据库,所以我很好奇架构最佳实践是什么。SQL Server 2008架构命名约定

该数据库将被称为“安全数据”。它存储有关债券的信息。

我已经确定的模式是:

  • 进口 - 视图和特效是真正链接的服务器调用其他数据库
  • 出口 - 视图和特效意味着其它数据库中使用
  • staging - 用于批量插入的表,以便我们可以验证和清理数据。
  • ??? - 包含有用的数据
  • 历史的真实的表 - 更改日志中真实的表

问题:

  1. 我要去架构疯了还是这是否有道理?
  2. 我应该为我的“真正的表”使用dbo,还是应该避免该模式,因为它倾向于成为垃圾场?

回答

4

架构具有双重目的:

  • 安全容器。授权/拒绝/撤销模式适用于架构中的所有对象。将相关安全对象分离为一个简单的维护和访问控制。
  • 命名空间。使用模式限定对象名称可以降低与其他应用程序甚至其他应用程序中的其他模块使用的名称的冲突概率。

所以我对你的问题是:为什么你想在第一个地方使用模式?我并不是说你不应该这样做,但是我想知道你最喜欢哪种模式的优点。如果你知道答案,那么你就会知道你需要多少架构,以及这些架构是什么。当然,答案可以是我在开始时给出的两个原因的混合物,那是可以的。在这种情况下,您可能会发现,从命名空间的角度来看,从安全角度或视图来看是灾难,反之亦然。

我自己我使用了单独的模式,就像你计划的一样,而soley为编程命名空间的好处。在开发过程中,它帮助我从一个对象的名称中看到它在逻辑上属于应用程序的位置。

+0

大多数情况下,我正在寻找组织和意图的命名空间。我甚至没有想过它对安全性的影响。 – 2010-02-05 23:50:26