初步了解了
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) |
数据库中的存储过程:
(自带的文档中有详解,不赘述)
各表关系: