2011-11-02 27 views
2

我最近开始在一家新公司开发Web应用程序,并开始引入一些更改,例如我的所有新代码都使用存储过程,而不是在代码中使用查询字符串。在模式中有一些表而不是一些表是不好的做法?

我最近与我的主管讨论了使用数据库模式来整理我们的数据库并保持可管理性。我正在使用的应用程序是一个Intranet ASP.Net站点,每个部门都有多个部分,我想为每个部门实施一个模式,以清楚哪些过程/表属于应用程序的哪些部分。

我的问题是,将新的表/程序等添加到数据库模式中会是不好的做法,但将所有其他内容保留下来,然后慢慢地将现有的表添加到模式中?或者我们应该一次又一次地将所有内容添加到模式中?

在模式中有一些表,还有一些现在在数据库中的表是否存在任何风险(性能或其他)?

对不起,这可能是一个相当简单的问题,但我不是DBA,并且一直在努力寻找关于此的任何答案。

感谢

回答

3

我想移动到模式,当您去的增量/重构的方法是一个很好的方法。我看不到它的性能问题。最大的问题会被记住,开始架构排位赛你的对象(你应该反正即使在今天做,因为它是性能最佳实践)

SELECT columns 
FROM dbo.Table 

,而不是

SELECT columns 
FROM Table 

如果你是一致的您的模式符合条件,您应该没问题。如果你懒惰,你最终会做更多的故障排除。

-1

Schema's没有被广泛使用。你会发现一些数据库源代码控制和代码生成器不能很好地使用模式。即使数据库本身对架构也不舒服,例如,如果存在安全不匹配的可能性,架构会拒绝缓存执行计划(架构可以有自己的安全设置)。

与触发器一样,最好避免架构。

+1

我不同意这个模式的广泛使用的评论。我发现他们使用的越来越多,我所使用的大多数工具都处理得很好。模式是安全性的一个很好的机制,另外还有一种方法可能为不同的对象分配不同的存储空间等等。即使触发器也有它们的位置,我不认为要么“完全避免”,但肯定不是模式:-) –

相关问题