cmd.CommandText = GetFormmattedSQL(sql, dictionary);
try
{
using (DbDataAdapter adapter = LocalSetting.DBFactory.CreateDataAdapter())
{
adapter.SelectCommand = cmd as DbCommand;
adapter.Fill(table);
}
}
catch(Exception e)
{
}
return table;
}
3.5 数据库的搭建
数据库表的设计将直接影响程序的性能[3],所以耐下心来一步步进行设计搭建是非常有必要的。数据库的实现分为以下几个主要过程:
概念结构设计,该阶段的主要产物是实体联系图,简称为E-R图;
关系模型的设计跟优化,该阶段的主要目的是把概念模型转化为关系模型,并主要从理论上来优化数据库;这部分将是体现一个数据库设计师能力的主要依据之一。
物理模型设计,该阶段主要内容是把关系模型真正用到具体的DBMS系统上去,如:Mysql、Oracle,再跟据需求的特点,及DBMS本身的特点,调整设计。
访问接口设计,包括:用户子模式设计,主要内容为设计视图,存储过程设计[4](理论上,这部份内容其实不用单独组成一个阶段;但这部分内容也有相当的重要性,所以这里,把它也单独提取出来)。
实体完整性:主键唯一,且各主属性不能为空。
参照完整性:外键的值必须在被参照表上存在,或为空。
用户定义的完整性:包括是否为空、是否唯一、外键的级联约定等等。
另外一块是优化,其主要依据是函数依赖理论,这一块优化不包含针对具体DBMS的优化,及物理模型的优化。这一部分引入了多层范式,包括:1NF~5NF,以及间于3NF及4NF之间的BC`NF。个人觉得,如果不是非常专业的数据库设计师的话,以BC`NF范式来做来自己设计的参考标准是比较合适的。
除去一些存放虚拟病人信息的表之外,有以下6个核心的表:
3.1 病人体症记录 VITAL_SIGNS _REC
中文名称 字段名 类型 长度 说明
病人标识 PATIENT_ID C 10 住院号
访问标识 VISIT_ID N 2 访问次数
记录日期 RECORDING_DATE D 记录日期
记录时间 TIME_POINT D 记录的具体时间
项目名称 VITAL_SIGNS C 16 项目名称,如体温、脉搏。
项目值 VITAL_SIGNS_VALUES C 2000 具体的值,varchar类型 基于.NET的三层构架的护理文书系统的设计与实现(8):http://www.751com.cn/jisuanji/lunwen_617.html