架构究竟是什么意思?存储过程和表可以有不同的模式吗? 如何通过模式指定结构? 是通过方案存储peoceduer识别对象吗?
答案 0 :(得分:2)
架构是指数据库表以及它们如何相互关联。存储过程也是数据库的一部分,但不是模式的一部分。
了解更多http://en.wikipedia.org/wiki/Database_schema
<强>更新: 错误地提到存储过程不是数据库模式的一部分。
onedaywhen的答案是正确的。
答案 1 :(得分:2)
这是主观的。 Wikipedia告诉我们,
在关系数据库中,架构 定义表,字段, 关系,观点,索引, 包,程序,功能, 队列,触发器,类型,序列, 物化视图,同义词,数据库 链接,目录,Java,XML模式, 和其他元素。
..这与@ niktrs的答案不一致,因为他明确地从架构中排除了程序。
我经常不得不强制执行DBMS不支持的数据库约束(例如,需要CHECK
约束中的子查询)并且我已经从基表中删除更新权限并进行了验证必须用于更新表的'助手'存储过程。在这些马戏团中,我可以说存储过程是模式的一部分。
实际上,如果在SO上我请求提问者,“请发布你的架构”并且他们发布了他们的存储过程(如果它与问题相关)那么我就不会抱怨;)
答案 2 :(得分:1)
SQL Server中的模式与.net中的“名称空间”类似。它自SQL Server 2005以来才被正确实现,所以我不会进入古代历史
Schema还引用了常用的表定义,键等。这就是你所说的“结构”的意思。这个含义与名称空间感
是分开的和不同的名称空间意义上的模式意味着您可以在数据模式中使用表,但在WebGUI模式或桌面模式中存储过程。 WebGUI.GetOrders将引用Data.Order表。
这样做的一个优点是安全性更容易:您在架构上授予而不是在对象上