项目数据字典

合集下载

学生管理系统数据字典

学生管理系统数据字典

Model: 学生管理系统需求模型Report: Student ManageAuthor: NI_YinZVersion: 1.0Date: 2011年11月20日一、数据库数据字典通过对学生管理系统工作的内容以及相关数据流程分析,根据学生管理系统的需要,可以设计出能满足用户需求的各种实体,以及它们之间的关系,由此得到数据库所支持的数据模型,即数据库的逻辑结构,具体情况如下:在mysql中建立了student_manage数据库,共包含八张表:学生表,成绩表,课程表,考试表,学生操行表,教师表,班级表,班级评估表。

每张表的字段、数据类型具体以及备注的详细情况如下:1、学生表(student)1NI_YinZ学生主键(student_id) Integer (数据库里长度设置为8)学生姓名(student_name) varchar(20)学生密码(student_password) varchar (32)学生所属专业(student_major) varchar (20)学生性别(student_sex) varchar (2)学生年龄(student_age) Integer (数据库里长度设置为3)学生生日(student_birthday) varchar (10)学生地址(student_address) varchar (40)学生兴趣(student_interests) text (学生兴趣以数组形式存入)学生星座(student_constellation) varchar (6)学生QQ(student_qq) Integer (数据库里长度设置为11)学生头像(student_photo) text学生日志(student_log) text学生日志标题(student_log_title) text学生所属班级(studet_class_name)varchar (20)学生所属年级(student_this_semester)varchar (20)2、成绩表(grade)一个学生一条数据每个学生对应的每门课程的成绩成绩主键(grade_id) Integer (数据库里长度设置为8)成绩学生名字(grade_student_name) varchar(20)成绩科目名(grade_curriculum_name) text (以数组形式存入,与成绩对应)2NI_YinZ成绩分数(curriculum_grade_num) text (以数组形式存入,与科目对应)成绩学期名(grade_semester)varchar(20)成绩专业名(grade_major)varchar(20)成绩班级名(grade_class)varchar(20)成绩考试时间/类型(grade_remark)varchar(20)成绩登记时间(grade_time)date成绩学生学号(grade_student_num)varchar(50)3、课程表(curriculum)一天一课一条数据课程主键(curriculum_id) Integer (数据库里长度设置为8)星期数目(week_num) varchar(8) (以如“星期一”形式存入)课程科目名(curriculum_name) varchar(20)课程课次(curriculum_this_week_num_time) varchar(30) (以如“第一节”形式存入)课程所属班级名(curriculum_this_class_name) varchar(20)当前班级的学期(curriculum_this_semester) varchar(20)4、考试表(remark)考试主键(remark_id)Integer (数据库里长度设置为8)考试类型或者时间(remark_grade_time)text (以如“期末”“一月”形式存入)当前考试分数(this_time_all_grade)Integer (数据库里长度设置为8)3NI_YinZ5、学生操行表(student_behavior)操行主键(student_behavior_id)Integer (数据库里长度设置为8)操行学生名(behavior_student_name) varchar(20)操行学期名(behavior_semester) varchar(20)操行班级名(behavior_class) varchar(20)操行学期周数(behavior_week_num) varchar(10)操行星期数(behavior_weekday) varchar(10)操行课次(behavior_class_time) text操行出勤情况(behavior_status) text操行总分(behavior_all_grade_num) varchar(10)6、教师表(teacher)教师主键(teacher_id) Integer (数据库里长度设置为8)教师姓名(teacher_name) varchar(20)教师密码(teacher_password) varchar(32)教师性别(teacher_sex) varchar(2)教师所教班级名(teacher_class_name) text (以数组形式存入)教师所教课程(teacher_teach_curriculum) text (以数组形式存入)教师QQ(teacher_qq) Integer (数据库里长度设置为11)4NI_YinZ教师头像(teacher_photo) text教师日志(teacher_log) text教师日志标题(teacher_log_title) text7、班级表(class)班级主键(class_id) Integer (数据库里长度设置为8)班级名(class_name) varchar(20)班级专业名(class_major_name) varchar(20)班级课程名(class_curriculum_name) text (以数组方式存入与教师名对应)班级教师名(class_teacher_name) text (以数组方式存入与课程名对应)班级学生名(class_student_name) text (以数组方式存入班级数据单位为班级(个))当前学期名(class_this_semester) varchar(20)当前教师所教课程(class_use_curriculum_name) text (以数组方式存入)8、班级评估表(class_evaluating)班级评估主键(class_evaluating_id)Integer (数据库里长度设置为8)班级评估年级名(class_evaluating_semester)varchar(20)班级评估专业名(class_evaluating_major)varchar(20)班级评估班级名(class_evaluating_class)varchar(20)5NI_YinZ班级评估量化理由(class_evaluating_reason)text班级评估当前分值(class_evaluating_this_score)Integer (数据库里长度设置为8)班级评估时间(class_evaluating_time)date班级评估总分值(class_evaluating_all_score)Integer (数据库里长度设置为8)二、代码数据字典通过对学生管理系统工作内容及相关情况的分析,根据学生和老师对管理系统的需要,开发者设计出能满足用户需求的各种模块以及功能,具体情况如下:根据命名规范:首字母小写,后面单词首字母大写。

常用数据字典

常用数据字典

数据字典目录目录 (1)1、公共类数据字典 (6)1.1.性别 (6)1.2.民族 (6)1.3.文化程度 (7)1.4.政治面貌 (8)1.5.职称 (8)1.6.军衔 (9)1.7.身体状况 (9)1.8.血型 (10)1.9.婚姻状况 (10)1.10.家庭出身 (10)1.11.户口性质 (10)1.12.港澳台侨属 (11)1.13.宗教信仰 (11)1.14.专业特长 (11)1.15.本人成分 (12)1.16.军种 (12)1.17.兵种 (12)1.18.奖励 (12)1.19.处分 (13)1.20.学历 (14)1.21.学位 (15)2、人民武装类数据字典 (15)2.1.专业技术干部职务等级 (15)2.2.兵役登记列表情况 (16)2.3.服役能力情况 (16)2.4.具有该服役能力的原因 (16)2.5.是否征集 (16)2.6.是否征集的原因 (17)2.8.病史项目 (17)2.9.表抗/艾滋病 (18)2.10.目测初检不合格原因 (18)2.11.政审淘汰原因 (18)2.12.入队方式 (19)2.13.教练类别 (19)2.14.干部类别 (19)2.15.任职原因 (19)2.16.行政区划类别 (20)2.17.武装部类别 (20)2.18.地域分布类别 (20)2.19.行政职务 (21)2.20.企事业单位属性 (21)2.21.基层武装部类别 (22)2.22.民兵建制类别 (22)2.23.民兵建制级别 (22)2.24.装备增减类别 (23)2.25.装备增减原因 (23)2.26.考核成绩 (23)2.27.承训能力 (23)2.28.建设进度 (24)2.29.民兵训练中心类别 (24)2.30.取消预征对象原因 (24)2.31.体格检查合格适合项目 (24)2.32.体格检查不合格科目 (25)2.33.体格检查不合格原因 (25)2.24.储备区技术种类 (26)2.25.学生军训机构类型 (27)2.26.院校类型 (27)2.27.行政干部职务等级 (27)2.28.学生军训基地类型 (28)2.29.学生军训基地使用属性 (28)2.29.学生军训训练枪库类型 (28)3、人民防空类数据字典 (28)3.1.行政级别 (28)3.2.在职培训 (29)3.3.人员编制 (29)3.4.地方编制 (29)3.5.学历培训 (29)3.7.指挥所性质 (30)3.8.指挥所级别 (30)3.9.指挥所通信状况 (30)3.10.工程状况 (30)3.11.防核/常规/化武器抗力等级 (31)3.12.战时用途 (31)4、交通战备类数据字典 (31)4.1.机构类别 (31)4.2.编制级别 (32)4.3.铁路行业行政、企事业专业类型 (32)4.4.铁路行业行政、企事业单位类型 (32)4.5.水路行业行政、企事业单位类型 (32)4.6.公路行业行政、企事业单位类型 (33)4.7.航空行业行政、企事业单位类型 (33)4.8.航空行业行政、企事业专业类型 (33)4.9.通信行业行政、企事业单位类型 (34)4.10.铁路线路类型 (34)4.11.桥梁建筑材料类别 (34)4.12.桥梁结构型式 (34)4.13.铁路隧道坡度类型 (35)4.14.隧道通风方式 (35)4.15.铁路车站等级 (35)4.16.铁路车站进站道路等级 (35)4.16.港口类型 (35)4.17.航道分类 (36)4.18.公路线路种类 (36)4.19.公路路面种类 (36)4.20.机场产权 (36)4.21.机场性质 (36)4.22.飞行区等级 (37)4.23.所属公司代码 (37)4.24.通信资源设备名称 (37)4.25.工程性质 (37)4.26.船类 (38)4.27.挂车类型 (38)4.28.车辆类型 (38)4.29.民用挂车/起重车/油罐车权属类型 (38)4.30. 民用普通运输车/客车权属类型 (39)4.31.民用普通运输车辆吨位 (39)4.33.民用油罐车辆吨位 (39)4.34.飞机类别 (40)4.35.航空公司航空器产权性质 (40)4.36.燃料种类 (40)4.37.交通专业保障队伍专业类别 (40)4.38.建制规模 (41)5、政治动员类数据字典 (41)5.1.部门级别 (41)5.2.领导干部国防教育二级类别 (41)5.3.民兵国防教育二级类别 (42)5.4.青年学生国防教育二级类别 (42)5.5.国防教育基地性质 (42)5.6.地方单位类型 (42)5.7.获奖级别 (43)5.8.党团组织分类 (43)5.9.民兵政治教育类别 (43)5.10.预役编组 (43)5.11.技职 (43)5.12.工作性质 (44)5.13.单位性质 (44)5.14.机构性质 (44)5.15.优抚人员种类 (44)5.16.优抚安置情况 (44)5.17.伤残(牺牲)原因 (45)6、信息动员类数据字典 (45)6.1.电子及通信设备制造企业行业类型 (45)6.2.企业性质 (46)6.3.信动企业岗位 (46)6.4.信动企业专业 (47)6.5.电信企业行业类型 (47)6.6.信息服务业行业类型 (47)6.7.计算机应用服务业行业类型 (47)7、预备役部队信息类数据字典 (48)7.1.预备役部队类别 (48)7.2.预备役部队建制属性 (48)7.3.预备役部队建制级别 (48)7.4.人员性质 (48)1、公共类数据字典1.1.性别1.2.民族1.3.文化程度1.4.政治面貌1.5.职称1.6.军衔1.7.身体状况1.8.血型1.9.婚姻状况1.10.家庭出身1.11.户口性质1.12.港澳台侨属1.13.宗教信仰1.14.专业特长1.15.本人成分1.16.军种1.17.兵种1.18.奖励1.19.处分1.20.学历1.21.学位2、人民武装类数据字典2.1.专业技术干部职务等级2.2.兵役登记列表情况2.3.服役能力情况2.4.具有该服役能力的原因2.5.是否征集2.6.是否征集的原因2.7.视力2.8.病史项目2.9.表抗/艾滋病2.10.目测初检不合格原因2.11.政审淘汰原因2.12.入队方式2.13.教练类别2.14.干部类别2.15.任职原因2.16.行政区划类别2.17.武装部类别2.18.地域分布类别2.19.行政职务2.20.企事业单位属性2.21.基层武装部类别2.22.民兵建制类别2.23.民兵建制级别2.24.装备增减类别2.25.装备增减原因2.26.考核成绩2.27.承训能力2.28.建设进度2.29.民兵训练中心类别2.30.取消预征对象原因2.31.体格检查合格适合项目2.32.体格检查不合格科目2.33.体格检查不合格原因2.24.储备区技术种类2.25.学生军训机构类型2.26.院校类型2.27.行政干部职务等级2.28.学生军训基地类型2.29.学生军训基地使用属性2.29.学生军训训练枪库类型3、人民防空类数据字典3.1.行政级别3.2.在职培训3.3.人员编制3.4.地方编制3.5.学历培训3.6.工程类型3.7.指挥所性质3.8.指挥所级别3.9.指挥所通信状况3.10.工程状况3.11.防核/常规/化武器抗力等级3.12.战时用途4、交通战备类数据字典4.1.机构类别4.2.编制级别4.3.铁路行业行政、企事业专业类型4.4.铁路行业行政、企事业单位类型4.5.水路行业行政、企事业单位类型4.6.公路行业行政、企事业单位类型4.7.航空行业行政、企事业单位类型4.8.航空行业行政、企事业专业类型4.9.通信行业行政、企事业单位类型4.10.铁路线路类型4.11.桥梁建筑材料类别4.12.桥梁结构型式4.13.铁路隧道坡度类型4.14.隧道通风方式4.15.铁路车站等级4.16.铁路车站进站道路等级4.16.港口类型4.17.航道分类4.18.公路线路种类4.19.公路路面种类4.20.机场产权4.21.机场性质4.22.飞行区等级4.23.所属公司代码4.24.通信资源设备名称4.25.工程性质4.26.船类4.27.挂车类型4.28.车辆类型4.29.民用挂车/起重车/油罐车权属类型4.30. 民用普通运输车/客车权属类型4.31.民用普通运输车辆吨位4.32.车辆座位4.33.民用油罐车辆吨位4.34.飞机类别4.35.航空公司航空器产权性质4.36.燃料种类4.37.交通专业保障队伍专业类别4.38.建制规模5、政治动员类数据字典5.1.部门级别5.2.领导干部国防教育二级类别5.3.民兵国防教育二级类别5.4.青年学生国防教育二级类别5.5.国防教育基地性质5.6.地方单位类型5.7.获奖级别5.8.党团组织分类5.9.民兵政治教育类别5.10.预役编组5.11.技职5.12.工作性质5.13.单位性质5.14.机构性质5.15.优抚人员种类5.16.优抚安置情况5.17.伤残(牺牲)原因6、信息动员类数据字典6.1.电子及通信设备制造企业行业类型6.2.企业性质6.3.信动企业岗位6.4.信动企业专业6.5.电信企业行业类型6.6.信息服务业行业类型6.7.计算机应用服务业行业类型7、预备役部队信息类数据字典7.1.预备役部队类别7.2.预备役部队建制属性7.3.预备役部队建制级别7.4.人员性质7.5.成建制训练课目属性。

数据库系统工程师考点精讲之数据字典

数据库系统工程师考点精讲之数据字典

数据库系统工程师考点精讲之数据字典数据字典数据流图描述了现行系统的总体框架结构,在数据流图的基础上,还需要对其中的每个数据流、文件和数据项加以描述,将这些描述所组成的集合称为数据字典。

数据字典的任务就是对数据流图中出现的所有被命名的图形元素在数据字典中作为一个词条加以定义和说明,目的是进行数据分析和归档,使得每个图形元素的名称都有一个确切的解释,同时也是数据库/数据文件设计的依据。

除此之外,数据字典还要对系统分析中其他需要说明的问题进行定义和说明。

数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,没有数据流图,数据字典也无法发挥作用。

只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

数据字典是系统逻辑模型的详细、具体说明,是系统分析阶段的重要文件,也是内容丰富、篇幅很大的文件,编写数据字典是一项十分重要而繁重的任务。

编写数据字典的基本要求是:(1)对数据流图上各种成分的定义必须明确、易理解、惟一。

(2)命名、编号与数据流图一致,必要时(如计算机辅助编写数据字典时)可增加编码,方便查询搜索、维护和统计报表。

(3)符合一致性与完整性的要求,对数据流图上的成分定义与说明无遗漏项。

数据字典中无内容重复或内容相互矛盾的条目。

(4)格式规范、风格统一、文字精炼,数字与符号正确。

数据字典可以用人工方式建立,事先印好表格,填好后按一定顺序排列,就是一本字典;也可以建立在计算机内,数据字典实际上是关于数据的数据库。

数据字典的内容包括数据流、数据文件、加工逻辑、源(汇)点及数据元素等词条的描述。

在数据流和数据文件词条的数据字典描述中包含一定的数据结构,对于数据结构常用的描述是定义式。

表给出了数据结构定义式可能出现的符号。

在数据字典中有6种类型的条目:数据项(数据元素)、数据结构、数据流、数据存储、外部实体和处理。

不同类型的条目有不同的属性,现分别说明如下。

1.数据项数据项也称为数据元素,是最小的数据组成单位,也就是不可再分的数据单位。

数据字典

数据字典
5.
PRTUI
Varchar2(8)
存储单位(UNIT FOR INVENTORY):存储在库房中的单位。引用T_UNIT(PRTUI)
6.
PRTURAT
Number(20,7)
存储单位折算系数(UNITARY RATIO):存储单位与计量单位转换因子,描述计量单位与存储单位之间的转换关系。转换公式为:计量单位=存储单位×折算系数,>0
24.
MTLDMSL
Number(10,3)
毛料长度,单位按毫米计。>0
25.
PRTABC
Varchar2(1)
库存管理ABC码(ABC INVENTORY CODE):物料(材料)的重要性或对库存价值影响程度的分类标记,MRP活动报告及库存循环盘点时将按ABC码区别对待。A件影响最大,控制最严格;B件次之,C件最小
4.1
用途:存储有关物料(包括材料、成件、组合件、产品等)的基本数据。
关键字:物料号PRTNO
序号
数据名
类型
名称及描述
1.
PRTNO
Varchar2(24)
物料号(PART NUMBER):用以标识一个制造对象项目的代号,是该项目检索的唯一关键字。物料的定义详见“术语定义”中的说明;在本表中,物料包括产品、零件、各级组合件和物资(包括原材料和外构件)。物料编号规则参照航标规定
用于物资管理时,应尽量采用国家、部委或行业的标准分类方法,也可针对本企业的特点加以扩充。
物资管理参考t_prtclass(wzdl),产品分类参考t_prodclass
43.
PRTSCPRT
Number(10,7)
物料废品系数(SCRAP RATE):制造过程允许的废品损耗,以小数表示。>0

医院信息数据库

医院信息数据库

(与住院子系统接口)实体及相应的属性门诊医师( 医师号, 科室、工作时间,姓名,专业技术职称,性别,出生日期,年龄,婚姻状况,职业,出生地,民族,身份证号,国籍,住址,电话,邮政编码,户口地址, 备注)挂号单(挂号号、挂号类别、挂号日期、挂号科室、主治医师、病人姓名) 处理方案(处理方案号、开出时间、处理方案内容、主治医师,病人姓名)门诊医生挂号 1挂号单构成 1发出处理方案包 括检验项目构成 3包 括检查项目构成 2包 括门诊处方构成 4包 括住院申请单(与药品出入管理子系统接口) 药品提领单 住院病人挂号2门诊病人支付应交费项目金 钱 数对应生成拥有包 括门诊病历门诊病历(病历号、病人姓名、病历内容、诊断时间、主治医师)处方( 处方号、处方内容、主治医师、病人姓名、病人性别、病人年龄、附注)收费项目( 收费项目号、项目类型、相应序号、收费金额、收费人员、病人姓名)门诊病人( 病人号,姓名,性别,出生日期,年龄,婚姻状况,职业,出生地,民族,身份证号,国籍,工作单位及地址 ,电话,邮政编码,户口地址,联系人姓名,联系人地址,联系人关系,是否住院, 联系人电话);检验项目(检验序号、检验医师、检验时间安排、检验内容、检验分析、检验结果,检验收费情况)检查项目(检查序号、检查医师、检查时间安排、检查内容、检查分析、检查结果、检查收费情况)工作时间安排(工作时间、所属科室、主治医师)支付: (支付金额、支付时间、支付项目)生成 (门诊处方-药品提领单):这里做了简化(少了分E-R 图中的中西药房药品实体及相关联系),直接由门诊处方与药品提领单产生联系,原因是为了简化设计。

包括1、包括2、包括3、包括4 (医生处理方案与具体处理方案的联系,不需要属性)包括5 (门诊处方-门诊病历)发出(门诊医生-处理方案)对应(门诊病人-门诊病历)(与门诊子系统接口)门诊医生医生1解释 5n医嘱1下达住院医生1n m出院通知单11 1 1归 档 负责解释 1 解释 2 解释 3 解释 4111 1 1住院病案住院处方检查项目 检验项目 手术项目n1对应 21对应 51n1床位1 n药品提领单(与药品出入管理子系统接口) 1对应 31 1n收费项目1住在1病区 1对应 41支付病人1交付1入院通知单n相应11住院病人门诊病人(与门诊子系统接口)对应 1属于 积累11相应的实体—属性关系如下:1.病人(身份证号,姓名,出生日期, 性别,年龄,婚姻状况,职业,出生地,民族,国籍,工作单位及地址,电话,邮政编码,户口地址,联系人姓名,联系人地址,联系人电话,是否住院)2.住院病人(住院号,姓名,入院科别,入院时间)3.医生(医师编号,姓名,出生日期,出生地,民族,国籍,户口地址,婚姻状况,年龄,住址,电话,专业技术职务,备注)4.住院医生(姓名,医师编号,所属科室,是否当值)5.住院病案(病案号,病人姓名,住院号,入院科别,入院病室,入院时间,入院情况,转科情况,出院科别,出院科别,出院病室,出院时间,入院诊断,入院后确诊时间,出院诊断,出院情况, 其他)6.床位(床号,住院号,姓名,经管医生,护理人员号码,是否空床,治疗结果,床位租金,入院日期, 住院天数,交费方式)7.病区(病区名,床位数,负责人,入住人数,出院人数,治愈率,好转率,未愈率,死亡率,诊断符合率,床位使用率)8.医嘱(诊断序号,诊断类别,疾病编码,疾病名称,启用日期,处理日期,医嘱内容,领药量,主治医师,病人姓名,住院号,出院转归,病理符合)9.住院处方(处方号,诊断序号,处方内容,主治医师,病人姓名,住院号,附注)10.检查项目(检查序号,诊断序号,病人姓名,住院号,检查类别,检查内容,检查日期安排,检查负责人员,检查结果,附注)11.检验项目(检验序号,诊断序号,病人姓名,住院号,检验类别,检验内容,检验日期安排,检验负责人员,检验结果,附注)12.手术项目 (手术序号,诊断序号,手术名称, 手术室号,病人姓名,住院号,主刀医师,手术日期,麻醉方式,切口情况,手术持续时间,手术结果)13.收费项目 (项目列号,项目内容,病人姓名,住院号,收费类型,收款日期,收款员,收款金额,结账情况,结账金额,是否转账) 14.入院通知单(通知单号,门诊医师号,医师姓名,病人姓名,病人号,诊断建议,收费情况,批准与否) 15.出院通知单(通知单号,住院医师号,医师姓名,病人姓名,病人号,诊断建议,收费情况,批准与否)解释一:新加入的“医生”“病人”两个实体.它们分别是“住院医生”和“住院病人”的超类.之所以要这样,原因是由于“住院病人”与“门诊病人”有不少相同的属性,这样就造成为了数据冗余.而如果让他们相同的属性由一个超类“病人”来拥有的话, “住院病人”与“门诊病人”就可以继承它的所有属性,这样也形成为了与门诊子系统的接口. “住院医生”“门诊医生”和“医生”也是同样的处理.解释二:对于各类型的预约,由于其功能比较单一,可在相应的项目中以“日期安排”的属性来完成其功能(如“检查项目”中用“检查日期安排”来代替“检查预约”).这样就使总 E-R 图比较的简洁了.解释三:手术项目中涉及到的麻醉药品与器械在此总图中没有反应 (画图浮现分叉).由于麻醉药品从属于药品,因此在“手术项目”中以“麻醉方式”描述其小类编号、药库号和品名,这样就不用单述“麻醉药品”一个实体了( “药品”的实体、属性在药品进出管理子系统中描述,因此总图也不涉及).对于器械这一个实体,由于此次惟独门诊、住院、药品管理三个子系统,没有涉及器械的管理,因此在此图中略去.如是一个完整的医院信息管理系统则应该加入.解释四:在图中该加入“出院通知单”这一个实体 .由于图中空余不够,因此没有画出.其应与病人发生联系(与“入院通知单”相同).解释五:对于“住院医生”这个实体应有“工作安排”的这样一个实体与之联系.但考虑到其只要与“医生”发生联系即可,这样的联系将在汇总 E-R 图是再考虑,本部份则略去.至此,本部份的 E-R 设计大体已经结束.在相应实体的属性中,必然有相应的冗余部份,此外,与其余子系统的衔接还有待在汇总时考虑.供应商: {供应商号,地址,电话,信贷状况};订 单: {定单号,供应商号,定货项数,定货日期,交货日期,生产地点}; 药 品: {小类编号,品名,规格,单位,数量,单价,金额,生产日期,保质期}; 药 库: {药库号,负责人,类别,面积};定单细则: {定单号,细则号,药品编号,单价,数量,规格,总价,批号}; 药品请领单: {编号, 领用单位,药品名称,规格,领药量,单价,金额}。

数据字典

数据字典

《信息系统分析与设计》
13
表5-10 数据字典实例——存折格式的表达
《信息系统分析与设计》
14
2)用数据字典简单表达前面定货系统中的“定货 报表”数据流,如表5-11所示。 表5-11数据字典实例——定货报表的表达
《信息系统分析与设计》
15
5.2.3 加工逻辑的描述 对数据流图的每一个基本加工,必须有一个基本 加工逻辑说明。基本加工逻辑说明必须描述基本加工 如何把输入数据流变换为输出数据流的加工规则;加 工逻辑说明必须描述实现加工的策略而不是实现加工 的细节;加工逻辑说明中包含的信息应是充足的、完 备的、有用的和无冗余的。用于写加工逻辑说明的工 具有结构化语言、判定表及判定树三种。
《信息系统分析与设计》
10
5.建立数据字典的方法 建立数据字典的常用方法有 2 种:手工建立和自动 建立。 1) 手工建立数据字典的内容并用卡片形式存放,其步 骤如下: (1) 按 4 类条目规范的格式印制卡片; (2) 在卡片上分别填写各类条目的内容; (3) 先按图号顺序排列,同一图号的所有条目按数 据流、 数据项、数据文件和数据加工的顺序排列; (4) 同一图号中的同一类条目(如数据流卡片)可 按名字的字典顺序存放,加工一般按编号顺序存放; (5) 同一成分在父图和子图都出现时,则只在父图 上定义; (6) 建立索引目录。
修改记录:
《信息系统分析与设计》
8
系统名:学籍管理 条目名:成绩管理 输入数据流:学生修课名单 课程名称 学生成绩
加工 编号:3 别名:
输出数据流:教学安排 学生成绩通知单 学生修课情况与成绩 统计
加工逻辑: 1.从学生名册中获取修同一课程的学生名单; 2.统计每门课程的修课的修课人数并报系机关; 3.从系机关获取课程安排数据,包括各门课程的上课时间、地点; 4.形成教学安排数据,其中包括各门课程的修课学生名单,上课地点,通知有关任课 教师; 5.接收任课教师的学生成绩数据,并登录在学生成绩档案中; 6.进行成绩统计,计算每门成绩并向系机关报告; 7.向学生发出学生成绩通知,并附补考安排。 处理频率: 简要说明: 课程安排由系机关中教学管理人员直接向学生公布。 修改记录: 编写 审核 张XX 李XX 日期 日期 2005.5.10 2005.5.20

SpringBoot中实现数据字典的示例代码

SpringBoot中实现数据字典的示例代码

SpringBoot中实现数据字典的⽰例代码我们在⽇常的项⽬开发中,对于数据字典肯定不模糊,它帮助了我们更加⽅便快捷地进⾏开发,下⾯⼀起来看看在 SpringBoot 中如何实现数据字典功能的⼀、简介1、定义数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进⾏定义和描述,其⽬的是对数据流程图中的各个元素做出详细的说明,使⽤数据字典为简单的建模项⽬。

简⽽⾔之,数据字典是描述数据的信息集合,是对系统中使⽤的所有数据元素的定义的集合。

数据字典(Data dictionary)是⼀种⽤户可以访问的记录数据库和应⽤程序元数据的⽬录。

主动数据字典是指在对数据库或应⽤程序结构进⾏修改时,其内容可以由DBMS⾃动更新的数据字典。

被动数据字典是指修改时必须⼿⼯更新其内容的数据字典。

2、理解数据字典是⼀种通⽤的程序设计思想,将主体与分⽀存于两张数据表中,他们之间靠着唯⼀的 code 相互联系,且 code 是唯⼀存在的,分⽀依附主体⽽存在,每⼀条分⽀都有它唯⼀对应的属性值例如:性别(sex),分为(0–保密1–男2–⼥),那么数据字典的设计就应该是主表:{"code": "sex","name": "性别"}副表:[{"dictCode": "sex","code": "0","text": "保密"},{"dictCode": "sex","code": "1","text": "男"},{"dictCode": "sex","code": "2","text": "⼥"}]那么我们在使⽤数据字典的时候,只需要知道 dictCode,再使⽤ code 找到唯⼀的字典值⼆、数据表设计1、数据表设计主表:drop table if exists sys_dict;/*==============================================================*//* Table: sys_dict *//*==============================================================*/create table sys_dict(id bigint(20) not null auto_increment comment '主键id',code varchar(32) comment '编码',name varchar(32) comment '名称',descript varchar(64) comment '描述',status tinyint(1) default 0 comment '状态(0--正常1--冻结)',create_time datetime comment '创建时间',create_user bigint(20) comment '创建⼈',del_flag tinyint(1) default 0 comment '删除状态(0,正常,1已删除)',primary key (id))type = InnoDB;alter table sys_dict comment '字典管理表';副表:drop table if exists sys_dict_detail;/*==============================================================*//* Table: sys_dict_detail *//*==============================================================*/create table sys_dict_detail(id bigint(20) not null comment '主键id',dict_code varchar(32) comment '字典编码',code varchar(32) comment '编码',name varchar(32) comment '名称',primary key (id))type = InnoDB;alter table sys_dict_detail comment '字典配置表';它们的关系如图所⽰:2、数据字典配置三、开发前戏1、引⼊ maven 依赖<!-- web⽀持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- thymeleaf模板引擎 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- aop依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- lombok插件 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>我们引⼊了 aop 切⾯所需依赖,我们的数据字典也是基于 aop 切⾯实现的2、创建实体类⽤户信息表 SysUserInfo.java:import com.baomidou.mybatisplus.annotation.*;import com.baomidou.mybatisplus.extension.activerecord.Model;import mon.annotation.Dict;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;import java.io.Serializable;/*** <p>* ⽤户信息表* </p>** @author lizhou* @since 2020-07-06*/@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("sys_user_info")@ApiModel(value="SysUserInfo对象", description="⽤户信息表")public class SysUserInfo extends Model<SysUserInfo> {@ApiModelProperty(value = "ID")@TableId(value = "id", type = IdType.AUTO)private Long id;@ApiModelProperty(value = "登录账号")@TableField("account")private String account;@ApiModelProperty(value = "登录密码")@TableField("password")private String password;@ApiModelProperty(value = "姓名")@TableField("name")private String name;@ApiModelProperty(value = "性别(0--未知1--男2--⼥)")@TableField("sex")@Dict(dictCode = "sex")private Integer sex;@ApiModelProperty(value = "状态(0--正常1--冻结)")@TableField("status")@Dict(dictCode = "status")private Integer status;}3、返回结果通⽤实体类返回结果通⽤实体类 LayTableResult.java:import lombok.Getter;import lombok.Setter;import java.util.List;/*** @param <T> 返回的实体类* @author lizhou* @描述后台返回给LayUI的数据格式*/@Getter@Setterpublic class LayTableResult<T> {/*** 接⼝状态*/private Integer code;/*** 提⽰信息*/private String msg;/*** 接⼝数据长度*/private Long count;/*** 接⼝数据*/private List<T> data;/*** ⽆参构造函数*/public LayTableResult() {super();}/*** 返回数据给表格*/public LayTableResult(Long count, List<T> data) {super();this.count = count;this.data = data;this.code = 0;}}由于我⽤的是 layui 前端框架,我写了⼀个返给 layui 表格的通⽤实体类,这是在实现数据字典需要⽤到的,判断响应返回实体类的类型来判断是否需要注⼊字典四、开发实现1、创建⾃定义注解我们创建⼀个⾃定义注解 @Dict 来实现数据字典import ng.annotation.ElementType;import ng.annotation.Retention;import ng.annotation.RetentionPolicy;import ng.annotation.Target;/*** 数据字典注解** @author Tellsea* @date 2020/6/23*/@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Dict {/*** 字典类型** @return*/String dictCode();/*** 返回属性名** @return*/String dictText() default "";}2、注解实现我们使⽤ aop 切⾯来实现什么的⾃定义注解 @Dictimport com.alibaba.fastjson.JSONObject;import com.fasterxml.jackson.annotation.JsonFormat;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import mon.annotation.Dict;import yTableResult;import mon.utils.ObjConvertUtils;import com.zyxx.sbm.entity.SysDictDetail;import com.zyxx.sbm.service.SysDictService;import lombok.extern.slf4j.Slf4j;import ng3.StringUtils;import ng.ProceedingJoinPoint;import ng.annotation.Around;import ng.annotation.Aspect;import ng.annotation.Pointcut;import org.springframework.beans.factory.annotation.Autowired;import ponent;import ng.reflect.Field;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;/*** 数据字典切⾯** @author Tellsea* @date 2020/6/23*/@Aspect@Component@Slf4jpublic class DictAspect {/*** 字典后缀*/private static String DICT_TEXT_SUFFIX = "Text";@Autowiredprivate SysDictService sysDictService;/*** 切点,切⼊ controller 包下⾯的所有⽅法*/@Pointcut("execution( * com.zyxx.*.controller.*.*(..))")public void dict() {}@Around("dict()")public Object doAround(ProceedingJoinPoint pjp) throws Throwable {long time1 = System.currentTimeMillis();Object result = pjp.proceed();long time2 = System.currentTimeMillis();log.debug("获取JSON数据耗时:" + (time2 - time1) + "ms");long start = System.currentTimeMillis();this.parseDictText(result);long end = System.currentTimeMillis();log.debug("解析注⼊JSON数据耗时" + (end - start) + "ms");return result;}private void parseDictText(Object result) {if (result instanceof LayTableResult) {List<JSONObject> items = new ArrayList<>();LayTableResult rr = (LayTableResult) result;if (rr.getCount() > 0) {List<?> list = (List<?>) rr.getData();for (Object record : list) {ObjectMapper mapper = new ObjectMapper();String json = "{}";try {// 解决@JsonFormat注解解析不了的问题详见SysAnnouncement类的@JsonFormatjson = mapper.writeValueAsString(record);} catch (JsonProcessingException e) {log.error("Json解析失败:" + e);}JSONObject item = JSONObject.parseObject(json);// 解决继承实体字段⽆法翻译问题for (Field field : ObjConvertUtils.getAllFields(record)) {//解决继承实体字段⽆法翻译问题// 如果该属性上⾯有@Dict注解,则进⾏翻译if (field.getAnnotation(Dict.class) != null) {// 拿到注解的dictDataSource属性的值String dictType = field.getAnnotation(Dict.class).dictCode();// 拿到注解的dictText属性的值String text = field.getAnnotation(Dict.class).dictText();//获取当前带翻译的值String key = String.valueOf(item.get(field.getName()));//翻译字典值对应的text值String textValue = translateDictValue(dictType, key);// DICT_TEXT_SUFFIX的值为,是默认值:// public static final String DICT_TEXT_SUFFIX = "_dictText";log.debug("字典Val: " + textValue);log.debug("翻译字典字段:" + field.getName() + DICT_TEXT_SUFFIX + ": " + textValue); //如果给了⽂本名if (!StringUtils.isBlank(text)) {item.put(text, textValue);} else {// ⾛默认策略item.put(field.getName() + DICT_TEXT_SUFFIX, textValue);}}// date类型默认转换string格式化⽇期if ("java.util.Date".equals(field.getType().getName())&& field.getAnnotation(JsonFormat.class) == null&& item.get(field.getName()) != null) {SimpleDateFormat aDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");item.put(field.getName(), aDate.format(new Date((Long) item.get(field.getName()))));}}items.add(item);}rr.setData(items);}}}/*** 翻译字典⽂本** @param dictType* @param key* @return*/private String translateDictValue(String dictType, String key) {if (ObjConvertUtils.isEmpty(key)) {return null;}StringBuffer textValue = new StringBuffer();String[] keys = key.split(",");for (String k : keys) {if (k.trim().length() == 0) {continue;}/*** 根据 dictCode 和 code 查询字典值,例如:dictCode:sex,code:1,返回:男* 应该放在redis,提⾼响应速度*/SysDictDetail dictData = sysDictService.getDictDataByTypeAndValue(dictType, key);if (dictData.getName() != null) {if (!"".equals(textValue.toString())) {textValue.append(",");}textValue.append(dictData.getName());}("数据字典翻译: 字典类型:{},当前翻译值:{},翻译结果:{}", dictType, k.trim(), dictData.getName());}return textValue.toString();}}3、注解使⽤我们只需要在实体类的属性上加⼊我们实现的⾃定义注解即可@ApiModelProperty(value = "性别(0--未知1--男2--⼥)")@TableField("sex")@Dict(dictCode = "sex")private Integer sex;@ApiModelProperty(value = "状态(0--正常1--冻结)")@TableField("status")@Dict(dictCode = "status")private Integer status;我们对 sex,status 都加⼊了 @Dict(dictCode = “”) 注解,那么我们在获取⽤户信息的时候,就能获取到对应的字典值了五、测试1、编写 API 查询我们在 controller 层开放⼀个 API 实现查询⽤户列表/*** 分页查询*/@PostMapping("list")@ResponseBodypublic LayTableResult list(Integer page, Integer limit, SysUserInfo userInfo) {QueryWrapper<SysUserInfo> queryWrapper = new QueryWrapper<>();if (StringUtils.isNotBlank(userInfo.getName())) {queryWrapper.like("name", userInfo.getName());}if (null != userInfo.getSex()) {queryWrapper.eq("sex", userInfo.getSex());}if (null != userInfo.getStatus()) {queryWrapper.eq("status", userInfo.getStatus());}queryWrapper.orderByDesc("create_time");IPage<SysUserInfo> iPage = sysUserInfoService.page(new Page<>(page, limit), queryWrapper);return new LayTableResult<>(iPage.getTotal(), iPage.getRecords());}注意:这⾥我们使⽤了 LayTableResult 作为相应实体类,与上⾯我们编写的返回通⽤实体类是⼀致的,必须⼀直,才能实现数据字典功能2、调⽤ API返回结果如下:{"code": 0,"msg": null,"count": 3,"data": [{"id": 2,"account": "152********","name": "周杰伦","sex": 1,"sexText": "男","status": 0,"statusText": "正常"}, {"id": 1,"name": "超级管理员","account": "152********","sex": 1,"sexText": "男","status": 0,"statusText": "正常"}]}可以看出,返回的数据中,多出了 sexText,statusText,两个属性,也就证明我们的字典功能已经实现成功六、总结1、优点1、在⼀定程度上,通过系统维护⼈员即可改变系统的⾏为(功能),不需要开发⼈员的介⼊。

项目数据对接的具体技术措施

项目数据对接的具体技术措施

项目数据对接的具体技术措施1. 数据对接项目需要采用灵活的接口设计,以实现不同系统之间的数据交互。

2. 采用数据字典标准化数据字段,以确保不同系统之间数据的一致性和准确性。

3. 项目中应考虑采用异步消息队列技术,实现系统间数据的高效传输和处理。

4. 数据对接项目需要实施数据加密和解密技术,保障数据在传输和存储过程中的安全性。

5. 采用数据映射技术,将不同系统的数据进行转换和匹配,以确保数据的兼容性和一致性。

6. 使用RESTful API设计原则,实现系统之间的数据对接和交互。

7. 项目中应采用OAuth2.0等认证和授权技术,确保数据对接接口的安全性和权限控制。

8. 考虑采用数据压缩和解压缩技术,减少数据传输过程中的网络带宽消耗。

9. 使用接口文档自动生成工具,提高对接接口的开发效率和准确性。

10. 数据对接项目中需考虑采用数据同步和数据备份技术,确保数据的可靠性和可恢复性。

11. 采用ETL工具实现数据的抽取、转换和加载,以满足不同系统之间数据格式的要求。

12. 引入数据清洗和数据质量检测工具,确保对接数据的准确性和完整性。

13. 数据对接项目中可以考虑采用分布式数据库技术,实现数据的分布式存储和管理。

14. 考虑采用数据分片和分区技术,提高对接数据的检索和查询效率。

15. 引入数据版本控制和数据变更跟踪技术,实现对数据变更的追踪和管理。

16. 采用数据脱敏和数据遮蔽技术,确保敏感数据在对接过程中的隐私保护。

17. 项目中可以考虑采用数据压缩和解压缩技术,优化数据传输过程中的存储空间和网络带宽消耗。

18. 实施数据归档和数据存储策略,合理管理对接数据的存储和清理。

19. 使用数据模型设计工具,帮助对接数据的结构化和建模。

20. 数据对接项目中应考虑采用数据备份和恢复技术,确保数据的可靠性和可恢复性。

21. 引入数据加密和解密技术,保障对接数据在传输和存储阶段的安全性。

22. 考虑采用数据校验和数据校准技术,确保对接数据的准确性和完整性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型
测试文件名
File
字符串
噪声源类型
字符串
柴油机型号
字符串
生产厂家
字符串
缸数
整数
功率
W
浮点数
转速
RPM
浮点数
1.3.
参数名称ห้องสมุดไป่ตู้
符号
单位
参数描述和选项说明
数据类型
测试文件名
字符串
名称
字符串
规格
浮点数
尺寸
浮点数
测试时间
日期
测试地点
字符串
测试内容
字符串
1.4.
参数名称
符号
单位
参数描述和选项说明
数据类型
数据字典
1.
1.1.
参数名称
符号
单位
参数描述和选项说明
数据类型
测试文件名
字符串
产品名称
字符串
型号/规格
字符串
样品编号
字符串
制造商
字符串
检测项目
字符串
委托单位
字符串
委托单位地址
字符串
报告日期
日期
试件描述
多行字符串
安装描述
多行字符串
隔声指数单值评价结果
Rw
dB
字符串
1.2.
参数名称
符号
单位
参数描述和选项说明
日期
1.6.
参数名称
符号
单位
参数描述和选项说明
数据类型
测试文件名
字符串
材料名称
字符串
生产厂家
浮点数
规格
浮点数
测试时间
日期
1.7.
参数名称
符号
单位
参数描述和选项说明
数据类型
测试文件名
字符串
材料名称
字符串
生产厂家
浮点数
规格
浮点数
测试时间
日期
测试文件名
字符串
产品名称
字符串
型号/规格
字符串
样品编号
字符串
制造商
字符串
检测项目
字符串
委托单位
字符串
委托单位地址
字符串
报告日期
日期
试件描述
字符串
安装描述
字符串
隔声指数单值评价结果
Rw
dB
字符串
1.5.
参数名称
符号
单位
参数描述和选项说明
数据类型
测试文件名
字符串
材料名称
字符串
生产厂家
浮点数
规格
浮点数
测试时间
相关文档
最新文档