ALTER TABLE [dbo].[专业_管理用户表] WITH NOCHECK ADD
CONSTRAINT [DF_专业_管理用户表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_专业_管理用户表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业_表头指标_上报值表] WITH NOCHECK ADD
CONSTRAINT [PK_专业_表头指标_上报值表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业其他信息表] WITH NOCHECK ADD
CONSTRAINT [PK_专业其他信息表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本信息表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本信息表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_列指标表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_列指标表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_用户表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_用户表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_行指标表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_行指标表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_表头指标] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_表头指标] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[企业用户表] WITH NOCHECK ADD
CONSTRAINT [DF_企业用户表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_企业用户表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[列指标库表] WITH NOCHECK ADD
CONSTRAINT [DF_列指标库表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_列指标库表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[地区表] WITH NOCHECK ADD
CONSTRAINT [PK_地区表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[指标约束表] WITH NOCHECK ADD
CONSTRAINT [PK_指标约束表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[文号] WITH NOCHECK ADD
CONSTRAINT [DF_文号_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_文号] PRIMARY KEY CLUSTERED
(
[文号ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[用户_专业基本表_项目表] WITH NOCHECK ADD
CONSTRAINT [PK_用户_专业基本表_项目表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[网上直报] WITH NOCHECK ADD
CONSTRAINT [PK_网上直报] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[行指标_专业表] WITH NOCHECK ADD
CONSTRAINT [DF_行指标_专业表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_行指标_专业表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[行指标库表] WITH NOCHECK ADD
CONSTRAINT [DF_行指标库表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_行指标库表] PRIMARY KEY CLUSTERED
(
[行指标ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[表头指标库表] WITH NOCHECK ADD
CONSTRAINT [DF_表头指标库表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_表头指标库表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[计量单位] WITH NOCHECK ADD
CONSTRAINT [DF_计量单位_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_计量单位] PRIMARY KEY CLUSTERED
(
[单位ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[超级用户] WITH NOCHECK ADD
CONSTRAINT [PK_超级用户] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[项目表_行指标表] WITH NOCHECK ADD
CONSTRAINT [PK_项目表_行指标表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业_管理用户表] ADD
CONSTRAINT [FK_专业_管理用户表_地区表] FOREIGN KEY
(
[所在地区ID]
) REFERENCES [dbo].[地区表] (
[ID]
)
GOALTER TABLE [dbo].[专业_表头指标_上报值表] ADD
CONSTRAINT [FK_专业_表头指标_上报值表_表头指标库表] FOREIGN KEY
(
[表头指标ID]
) REFERENCES [dbo].[表头指标库表] (
[ID]
),
CONSTRAINT [FK_专业_表头指标_上报值表_企业用户表] FOREIGN KEY
(
[用户ID]
) REFERENCES [dbo].[企业用户表] (
[ID]
),
CONSTRAINT [FK_专业_表头指标_上报值表_用户_专业基本表_项目表] FOREIGN KEY
(
[项目ID]
) REFERENCES [dbo].[用户_专业基本表_项目表] (
[ID]
),
CONSTRAINT [FK_专业_表头指标_上报值表_专业基本信息表] FOREIGN KEY
(
[基本信息表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[专业其他信息表] ADD
CONSTRAINT [FK_专业其他信息表_用户_专业基本表_项目表] FOREIGN KEY
(
[项目ID]
) REFERENCES [dbo].[用户_专业基本表_项目表] (
[ID]
),
CONSTRAINT [FK_专业其他信息表_专业基本表_用户表] FOREIGN KEY
(
[用户ID]
) REFERENCES [dbo].[专业基本表_用户表] (
[ID]
),
CONSTRAINT [FK_专业其他信息表_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GO
CONSTRAINT [DF_专业_管理用户表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_专业_管理用户表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业_表头指标_上报值表] WITH NOCHECK ADD
CONSTRAINT [PK_专业_表头指标_上报值表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业其他信息表] WITH NOCHECK ADD
CONSTRAINT [PK_专业其他信息表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本信息表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本信息表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_列指标表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_列指标表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_用户表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_用户表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_行指标表] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_行指标表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业基本表_表头指标] WITH NOCHECK ADD
CONSTRAINT [PK_专业基本表_表头指标] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[企业用户表] WITH NOCHECK ADD
CONSTRAINT [DF_企业用户表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_企业用户表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[列指标库表] WITH NOCHECK ADD
CONSTRAINT [DF_列指标库表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_列指标库表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[地区表] WITH NOCHECK ADD
CONSTRAINT [PK_地区表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[指标约束表] WITH NOCHECK ADD
CONSTRAINT [PK_指标约束表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[文号] WITH NOCHECK ADD
CONSTRAINT [DF_文号_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_文号] PRIMARY KEY CLUSTERED
(
[文号ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[用户_专业基本表_项目表] WITH NOCHECK ADD
CONSTRAINT [PK_用户_专业基本表_项目表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[网上直报] WITH NOCHECK ADD
CONSTRAINT [PK_网上直报] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[行指标_专业表] WITH NOCHECK ADD
CONSTRAINT [DF_行指标_专业表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_行指标_专业表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[行指标库表] WITH NOCHECK ADD
CONSTRAINT [DF_行指标库表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_行指标库表] PRIMARY KEY CLUSTERED
(
[行指标ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[表头指标库表] WITH NOCHECK ADD
CONSTRAINT [DF_表头指标库表_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_表头指标库表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[计量单位] WITH NOCHECK ADD
CONSTRAINT [DF_计量单位_时间] DEFAULT (getdate()) FOR [时间],
CONSTRAINT [PK_计量单位] PRIMARY KEY CLUSTERED
(
[单位ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[超级用户] WITH NOCHECK ADD
CONSTRAINT [PK_超级用户] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[项目表_行指标表] WITH NOCHECK ADD
CONSTRAINT [PK_项目表_行指标表] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GOALTER TABLE [dbo].[专业_管理用户表] ADD
CONSTRAINT [FK_专业_管理用户表_地区表] FOREIGN KEY
(
[所在地区ID]
) REFERENCES [dbo].[地区表] (
[ID]
)
GOALTER TABLE [dbo].[专业_表头指标_上报值表] ADD
CONSTRAINT [FK_专业_表头指标_上报值表_表头指标库表] FOREIGN KEY
(
[表头指标ID]
) REFERENCES [dbo].[表头指标库表] (
[ID]
),
CONSTRAINT [FK_专业_表头指标_上报值表_企业用户表] FOREIGN KEY
(
[用户ID]
) REFERENCES [dbo].[企业用户表] (
[ID]
),
CONSTRAINT [FK_专业_表头指标_上报值表_用户_专业基本表_项目表] FOREIGN KEY
(
[项目ID]
) REFERENCES [dbo].[用户_专业基本表_项目表] (
[ID]
),
CONSTRAINT [FK_专业_表头指标_上报值表_专业基本信息表] FOREIGN KEY
(
[基本信息表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[专业其他信息表] ADD
CONSTRAINT [FK_专业其他信息表_用户_专业基本表_项目表] FOREIGN KEY
(
[项目ID]
) REFERENCES [dbo].[用户_专业基本表_项目表] (
[ID]
),
CONSTRAINT [FK_专业其他信息表_专业基本表_用户表] FOREIGN KEY
(
[用户ID]
) REFERENCES [dbo].[专业基本表_用户表] (
[ID]
),
CONSTRAINT [FK_专业其他信息表_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GO
CONSTRAINT [FK_专业基本信息表_专业_管理用户表] FOREIGN KEY
(
[专业ID]
) REFERENCES [dbo].[专业_管理用户表] (
[ID]
)
GOALTER TABLE [dbo].[专业基本表_列指标表] ADD
CONSTRAINT [FK_专业基本表_列指标表_列指标库表] FOREIGN KEY
(
[列指标ID]
) REFERENCES [dbo].[列指标库表] (
[ID]
),
CONSTRAINT [FK_专业基本表_列指标表_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[专业基本表_用户表] ADD
CONSTRAINT [FK_专业基本表_用户表_企业用户表] FOREIGN KEY
(
[企业ID]
) REFERENCES [dbo].[企业用户表] (
[ID]
),
CONSTRAINT [FK_专业基本表_用户表_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[专业基本表_行指标表] ADD
CONSTRAINT [FK_专业基本表_行指标表_计量单位] FOREIGN KEY
(
[计量单位ID]
) REFERENCES [dbo].[计量单位] (
[单位ID]
),
CONSTRAINT [FK_专业基本表_行指标表_行指标库表] FOREIGN KEY
(
[行指标ID]
) REFERENCES [dbo].[行指标库表] (
[行指标ID]
),
CONSTRAINT [FK_专业基本表_行指标表_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[专业基本表_表头指标] ADD
CONSTRAINT [FK_专业基本表_表头指标_表头指标库表] FOREIGN KEY
(
[表头指标ID]
) REFERENCES [dbo].[表头指标库表] (
[ID]
),
CONSTRAINT [FK_专业基本表_表头指标_专业基本信息表] FOREIGN KEY
(
[基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[企业用户表] ADD
CONSTRAINT [FK_企业用户表_地区表] FOREIGN KEY
(
[所在地区ID]
) REFERENCES [dbo].[地区表] (
[ID]
),
CONSTRAINT [FK_企业用户表_专业_管理用户表] FOREIGN KEY
(
[所属专业]
) REFERENCES [dbo].[专业_管理用户表] (
[ID]
)
GOALTER TABLE [dbo].[指标约束表] ADD
CONSTRAINT [FK_指标约束表_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[用户_专业基本表_项目表] ADD
CONSTRAINT [FK_用户_专业基本表_项目表_企业用户表] FOREIGN KEY
(
[用户ID]
) REFERENCES [dbo].[企业用户表] (
[ID]
),
CONSTRAINT [FK_用户_专业基本表_项目表_专业基本信息表] FOREIGN KEY
(
[基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[网上直报] ADD
CONSTRAINT [FK_网上直报_企业用户表] FOREIGN KEY
(
[用户ID]
) REFERENCES [dbo].[企业用户表] (
[ID]
),
CONSTRAINT [FK_网上直报_用户_专业基本表_项目表] FOREIGN KEY
(
[项目ID]
) REFERENCES [dbo].[用户_专业基本表_项目表] (
[ID]
),
CONSTRAINT [FK_网上直报_专业基本信息表] FOREIGN KEY
(
[专业基本表ID]
) REFERENCES [dbo].[专业基本信息表] (
[ID]
)
GOALTER TABLE [dbo].[行指标_专业表] ADD
CONSTRAINT [FK_行指标_专业表_行指标库表] FOREIGN KEY
(
[行指标ID]
) REFERENCES [dbo].[行指标库表] (
[行指标ID]
),
CONSTRAINT [FK_行指标_专业表_专业_管理用户表] FOREIGN KEY
(
[专业ID]
) REFERENCES [dbo].[专业_管理用户表] (
[ID]
)
GOALTER TABLE [dbo].[项目表_行指标表] ADD
CONSTRAINT [FK_项目表_行指标表_计量单位] FOREIGN KEY
(
[计量单位ID]
) REFERENCES [dbo].[计量单位] (
[单位ID]
),
CONSTRAINT [FK_项目表_行指标表_行指标_专业表] FOREIGN KEY
(
[行指标ID]
) REFERENCES [dbo].[行指标_专业表] (
[ID]
),
CONSTRAINT [FK_项目表_行指标表_用户_专业基本表_项目表] FOREIGN KEY
(
[项目ID]
) REFERENCES [dbo].[用户_专业基本表_项目表] (
[ID]
)
GO
构造数据库必须遵循一定的规则在关系数据库中这种规则就是范式范式是符合
某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求即满足不同的
范式目前关系数据库有六种范式第一范式1NF 第二范式2NF 第三范式3NF
第四范式4NF 第五范式5NF 和第六范式6NF 满足最低要求的范式是第一
范式1NF 在第一范式的基础上进一步满足更多要求的称为第二范式2NF 其余
范式以次类推一般说来数据库只需满足第三范式3NF 就行了下面我们举例介绍
第一范式1NF 第二范式2NF 和第三范式3NF
第一范式1NF
在任何一个关系数据库中第一范式1NF 是对关系模式的基本要求不满足第一
范式1NF 的数据库就不是关系数据库
所谓第一范式1NF 是指数据库表的每一列都是不可分割的基本数据项同一列中
不能有多个值即实体中的某个属性不能有多个值或者不能有重复的属性如果出现重复
的属性就可能需要定义一个新的实体新的实体由重复的属性构成新实体与原实体之
间为一对多关系在第一范式1NF 中表的每一行只包含一个实例的信息例如对
于图3-2 中的员工信息表不能将员工信息都放在一列中显示也不能将其中的两列或多
列在一列中显示员工信息表的每一行只表示一个员工的信息一个员工的信息在表中只
出现一次简而言之第一范式就是无重复的列
第二范式2NF
第二范式2NF 是在第一范式1NF 的基础上建立起来的即满足第二范式2NF
必须先满足第一范式1NF 第二范式2NF 要求数据库表中的每个实例或行必须可
以被惟一地区分为实现区分通常需要为表加上一个列以存储各个实例的惟一标识如
图3-2 员工信息表中加上了员工编号emp_id 列因为每个员工的员工编号是惟一的
因此每个员工可以被惟一区分这个惟一属性列被称为主关键字或主键主码
第二范式2NF 要求实体的属性完全依赖于主关键字所谓完全依赖是指不能存在
仅依赖主关键字一部分的属性如果存在那么这个属性和主关键字的这一部分应该分离
出来形成一个新的实体新实体与原实体之间是一对多的关系为实现区分通常需要为表
加上一个列以存储各个实例的惟一标识简而言之第二范式就是非主属性非部分依赖
于主关键字
第三范式3NF
满足第三范式3NF 必须先满足第二范式2NF 简而言之第三范式3NF
要求一个数据库表中不包含已在其它表中已包含的非主关键字信息例如存在一个部门
信息表其中每个部门有部门编号dept_id 部门名称部门简介等信息那么在图3-2
的员工信息表中列出部门编号后就不能再将部门名称部门简介等与部门有关的信息再加
入员工信息表中如果不存在部门信息表则根据第三范式3NF 也应该构建它否则
就会有大量的数据冗余简而言之第三范式就是属性不依赖于其它非主属性
2。有唯一性质的记录表,建立主键索引;
3。将描述同一种对象的属性数据设计在同一种表中;
4。有详细明细说明的,要建立子表;
5。为提高查询速度,建立必要的索引;
6。为防止数据库表中存在不合理的数据,建立必要的约束和默认;
7。定长字符项使用CHAR,NCHAR类型;不定长字符项使用VARCHAR,NVARCHAR;
8。日期时间最好使用DATETIME类型,便于时间的比较和计算。
9。为了节省空间,尽量减少数据冗余;为了提高处理速度,可以适当的增加数据冗余。两者的平衡要掌握好。
10。尽量将当前活动数据,与历史沉淀数据放在不同的表中。通过建立视图进行查询。以提高活动数据的处理速度。