asp.net|数据|数据库
初步了解了ASP.NET Portal Starter Kit后(我以前的文章),本来想继续重构代码的。在构思的时候想到要是能把五个入门套件结合在一起不是更好。Time Tracker(时间管理或项目追踪)是利用微软的Data Access Application Block作为数据库访问层的,我正好也要这样做,所以就先来看看ASP.NET Time Tracker Starter Kit。
ASP.NET Time Tracker Starter Kit(项目追踪入门套件),提供项目成员(顾问)于每一项项目中各类别所花费的时间,加予统计分析,相当于项目的「项目成员工时记录卡」。详细介绍可参见微软网站上的一片文章。像解读门户网站入门套件一样,还是先从数据库说起。
数据库中的表:
TT_Categories:项目目录信息
字段名
类型
含义
备注
CategoryID
Int
目录Id
主键(自动编号)
ProjectID
Int
所属项目Id
关联项目信息表
Name
Nvarchar(50)
目录名称
Abbreviation
Nvarchar(4)
简写
EstDuration
Decimal(9)
预计持续时间
小数位两位(单位:小时)
TT_EntryLog:项目成员工时记录卡
字段名
类型
含义
备注
EntryLogID
Int
记录Id
主键(自动编号)
Description
Nvarchar(255)
工作描述
Duration
Decimal(9)
完成工时
小数位两位
EntryDate
SmallDatetime
记录日期
ProjectID
Int
所属项目Id
关联项目成员表
UserID
Int
所属用户Id
CategoryID
Int
所属目录Id
TT_ProjectMembers:项目成员表(通过此表可以反映:一个用户可以同时参与多个项目,一个项目也可有多个用户参与)
字段名
类型
含义
备注
ProjectID
Int
项目Id
关联项目信息表
UserID
Int
项目成员Id
关联用户信息表
TT_Projects:项目信息表
字段名
类型
含义
备注
ProjectID
Int
项目Id
主键(自动编号)
Name
Nvarchar(50)
项目名称
Description
Nvarchar(1024)
项目描述
ManagerUserID
Int
项目经理Id
关联用户表
EstCompletionDate
Datetime
预计完成时间
EstDuration
Decimal(9)
预计持续时间
小数位两位(单位:小时)
CreationDate
Datetime
创建事件
默认值:getdate()
TT_Roles:角色信息表
字段名
类型
含义
备注
RoleID
Int
角色Id
主键(自动编号)
Name
Nvarchar(50)
角色名称
TT_Users:用户信息表
字段名
类型
含义
备注
UserID
Int
用户Id
主键(自动编号)
DisplayName
Nvarchar(50)
用户姓名
Password
Nvarchar(50)
密码
采用MD5的加密方式存储
UserName
Nvarchar(50)
登录名(用户Email)
用于登录,并设置成唯一性索引(可防止注册相同的Email,这样设置后当有相同的Email插入时程序就会抛出异常,捕获这个异常就可判断Email是否重复,这样就可以省掉判断Email是否重复的代码)
RoleID
Int
角色Id
关联角色信息表(TT_Roles)
数据库中的存储过程:(自带的文档中有详解,不赘述)
各表关系:
Time Tracker中的各数据表中的关系不同与Portal,各表之间有很强的约束关系。在完整性约束上面做的比较好。从各表中的关系上来看,是符合数据设计第三范式的。