日期:2014-02-05  浏览次数:20471 次

初步了解了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,各表之间有很强的约束关系。在完整性约束上面做的比较好。从各表中的关系上来看,是符合数据设计第三范式的。