Author:
水如烟
USE [ RegionalCodeWorks ]
GO
/* ***** 对象: Schema [Program] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Program ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Program] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [FUNCTION] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' FUNCTION ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [FUNCTION] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [Edit] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Edit ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Edit] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [Base] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Base ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Base] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [Action] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Action ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Action] AUTHORIZATION [dbo] '
USE [
总目录:
行政区划数据方案设计
上一篇,
行政区划数据数据库的设计(三)
这一篇主要说基本信息也就是“[Base].区划码”和“[Edit].区划码情况”的设计,以及对它操作的函数“[FUNCTION].区划码情况”和存储过程“[Program].增添记录”。
当本“系列”结束时,我将提供整个数据库的生成脚本和程序代码供下载。
设计数据库时,针对某一信息建表,我把握的准则是先弄清楚那些是主体表,那些是附属表。主体是信息承载的宿主,附属是为方便查询主体信息引进的。
如这里的表,图中的“基本信息”就是主体的,“属性信息”就是附属的。没有附属的也可以,只是查询起来不方便。因为附属的是为查询服务的,在实际使用中,附属的反客为主,查询中基本是针对附属表及相关的函数、存储过程;信息能量的利用发掘,也体现在附属的上面。主体的通常只在数据编辑时用到。
设计初期重点考虑主体表。附属表可以在使用中再设计再增加也不迟。在我的设计过程中,开始也仅只有文首提到的四个对象。在这些文中,我尽可能反映我的设计过程的原貌,让各位能够把握这个过程中我的思维。原本也有把自己想法记载下来的目的。
△
针对数据本身,也要分析主体和附属。附属的作用于主体,分开处理。看过网上的一些关于数据库设计方面的文章,针对不同的场境应用不同的模式,我记不住,也悟不透,只好还是跟着感觉走。
下面入“正题”。
△
建库RegionalCodeWorks,Works尾缀吸收了SQLServer2005的示例命名做法,加上它觉得整个库都有生机了,特舒服。
脚本是针对我的机器的。如使用这个脚本要修改成本地参数,最好在Management上直接建。
USE
[
master
]
GO
IF NOT EXISTS ( SELECT name FROM sys.databases WHERE name = N ' RegionalCodeWorks ' )
BEGIN
CREATE DATABASE [ RegionalCodeWorks ] ON PRIMARY
( NAME = N ' RegionalCodeWorks ' , FILENAME = N ' g:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATARegionalCodeWorks.mdf ' , SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N ' RegionalCodeWorks_log ' , FILENAME = N ' g:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATARegionalCodeWorks_log.ldf ' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10 % )
COLLATE Chinese_PRC_CI_AS
END
GO
IF NOT EXISTS ( SELECT name FROM sys.databases WHERE name = N ' RegionalCodeWorks ' )
BEGIN
CREATE DATABASE [ RegionalCodeWorks ] ON PRIMARY
( NAME = N ' RegionalCodeWorks ' , FILENAME = N ' g:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATARegionalCodeWorks.mdf ' , SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N ' RegionalCodeWorks_log ' , FILENAME = N ' g:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATARegionalCodeWorks_log.ldf ' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10 % )
COLLATE Chinese_PRC_CI_AS
END
△
建命名空间(也就是架构):
以下的脚本可以直接使用了。
USE [ RegionalCodeWorks ]
GO
/* ***** 对象: Schema [Program] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Program ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Program] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [FUNCTION] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' FUNCTION ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [FUNCTION] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [Edit] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Edit ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Edit] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [Base] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Base ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Base] AUTHORIZATION [dbo] '
GO
/* ***** 对象: Schema [Action] 脚本日期: 09/17/2006 19:14:49 ***** */
IF NOT EXISTS ( SELECT * FROM sys.schemas WHERE name = N ' Action ' )
EXEC sys.sp_executesql N ' CREATE SCHEMA [Action] AUTHORIZATION [dbo] '
△
建默认值:
USE [