如何将我的数据库分成不同的区域,以便在SQL Server中存储不同类型的信息?

时间:2013-02-27 09:04:14

标签: sql-server

我的数据库创建时的表名与用户信息类似:

DROP TABLE [dbo].[webpages_Membership];
DROP TABLE [dbo].[webpages_OAuthMembership];
DROP TABLE [dbo].[webpages_Roles];
DROP TABLE [dbo].[webpages_UsersInRoles];

在表命名约定方面,这有点像标准吗?如果我现在想要的话 制作一些新表是否合理,也可以将它们命名为

admin_application
admin_account

或者,DBA是否通常会在用户对表类型进行分组时将用于保存不同内容的表分配给不同的用户?

我想了解人们通常如何在应用程序中对表进行分组。我 在这种情况下,假设他们都属于一个所有者dbo或者人们离开了 表名单独并将它们存储在不同的所有者帐户中?

2 个答案:

答案 0 :(得分:1)

是的,最好的方法是使用模式来划分逻辑分组的表。这方面的好例子是您可以从CodePlex下载的Adventure works数据库。他们为公司的不同部门提供了多种模式,如人员,生产,销售,销售等。有关MS如何设计此数据库,请参阅more details

答案 1 :(得分:0)

看一下架构:

create schema webpages authorization dbo;
GO

create table webpages.Membership (...
create table webpages.OAuthMembership (...

create schema admin authorization dbo;
GO

create table admin.application (...

以前在SQL Server 2005之前,您需要创建数据库用户才能创建架构。但是,从那时起,您可以为组织目的创建模式。模式不能包含模式,因此它只是一个级别。模式可以包含任何数据库对象,即表,存储过程等。

架构需要拥有一个所有者,因此上面有authorization位。在此处指定dbo将使其与在dbo架构中创建它的方式相同。