市政道桥表结构设计

前提是你 提交于 2020-02-08 02:46:31

智慧道桥监管平台数据库设计说明书

引言

编写目的

为了完成系统的数据结构设计,为下一步的开发做好准备,编写本文档。由于本系统目前是产品的第一个版本,而与竞争产品相比,系统在灵活配置、业务覆盖范围等方面会做比较大的改进。
本文档预期的读者是产品设计、开发人员和测试人员。

背景

产品名称:智慧道桥监管平台
任务提出者:北京数字政通科技股份有限公司
任务开发者:数据服务产品部
第一用户:城管局、市政处

术语定义

设计规范

数据库表规范

(1)表名格式:模块名_表含义名,如 认证中心人员表:auth_human;如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀

(2)不再使用tc_,to_,tr_前缀

(3)表的名称必须易于理解,使用能表达功能的英文单词或缩写英文单词,词间以_分割

(4)在命名表时,用单数形式表示名称。例如,使用auth_human,而不是auth_humans

(5)表名用小写

(6)表名称长度不能超过30个字符(几种数据库中Oracle要求最高)

(7)职责相近的表,命名规则应该相同

数据库字段规范

(1)业务表须要有主键,例如自增主键

(2)字段名称必须易于理解,使用能表达功能的英文单词或缩写英文单词,词间以_分割

(3)字段名用小写,且需要加入中文注释

(4)字段名称长度不能超过30个字符(几种数据库中Oracle要求最高)

(5)字段名称不要重复表的名称;例如,在名为auth_human的表中推荐使用name或human_name,避免使用名为auth_human_name 的字段

(6)不建议设置外键约束,但要保证与实际外键字段类型一致

数据库索引规范

(1)如果字段事实上是与其它表的主键相关联且未设计为外键引用,需建为该字段建立索引

(2)常见索引列建议
select、update、delete语句的where从句中的列包含在orderby、group by、distinct中的字段多表join的关联列

(3)不滥用索引,限制每张表上的索引数量,建议单张表索引不超过5个

(4)避免使用外键约束,但一定在表与表之间的关联键上建立索引,外键可用于保证数据的参照完整性,但建议在业务端实现,外键会影响父表和子表的写操作从而降低性能。

(5)避免建立冗余索引和重复索引
primary key(id)、index(id)、unique index(id)重复索引
index(a,b,c)、index(a,b)、index(a)冗余索引

数据库详细设计

工单表(dq_work_order)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 工单id id varchar 50 not null
- 工单号 work_num varchar 20 not null
- 道桥编码 part_code varchar 20 not null
- 道桥名称 part_name varchar 255
- x坐标 x double (20,5)
- y坐标 y double (20,5)
- 地址 address varchar 255
- 问题来源id event_source_id int
- 问题来源名称 event_source_name varchar 50
- 上报时间 report_time datetime
- 上报人id report_human_id int
- 上报人名称 report_human_name varchar 20
- 概算费用 completion_coast double (10,2) 概算费用(竣工申报) 施工方上报的概算总费用
- 验收费用 acceptance_coast double (10,2) 验收费用(验收) 最终的总费用
- 养护公司id maintenance_unit_id int (外键,dq_dic_unit)
- 养护公司名称 maintenance_unit_name varchar 50
- 问题描述 event_desc varchar 1000
- 当前所处阶段id act_proptery_id int (外键,dq_dic_work_state主键)
- 所处阶段名称 act_property_name varchar 20
- 维护费用 maintain_cost double (10,2)

工单阶段表(dq_work_state)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 工段阶段标识 id int not null
- 工单id work_order_id varchar 50 (外键,dq_work_order主键)
- 工单阶段id act_property_id int (外键,dq_dic_work_state主键)
- 描述 act_desc varchar 255
- 操作阶段操作时间 act_time datetime

工单阶段字典表(dq_dic_work_state)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 act_property_id int not null
- 阶段名称 act_property_name varchar 20

病害类型字典(dq_dic_disease_type)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 病害类型标识 type_id int not null
- 病害类型名称 type_name varchar 50
- 父级id senior_id int

工单病害关联表(dq_work_disease)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 工单id work_order_id varchar 50
- 病害类型id type_id int

工程量清单表(dq_engineer_info)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 工单id work_order_id varchar 50
- 单位名称 unit_name varchar 10 计量单位
- 单价 unit_price double (10,2)
- 上报数量 report_quantity float (8,2) 上报阶段数量
- 派发数量 distribute_quantity float (8,2) 派发阶段数量
- 竣工数量 completion_quantity float (8,2) 竣工阶段数量
- 验收数量 acceptance_quantity float (8,2) 验收阶段数量
- 创建时间 creator_time datetime
- 创建人 creator varchar 10
- 材料 material varchar 300
- 上报价格 report_total_price double (10,2) 上报阶段总价
- 派发价格 distribute_total_price double (10,2) 派发阶段总价
- 竣工价格 completion_total_price double (10,2) 竣工阶段总价
- 验收价格 acceptance_total_price double (10,2) 验收阶段总价
- 病害id disease_id int (外键,dq_work_disease主键)
- 养护类型id maintenance_type_id int (外键,dq_dic_maintenance_type主键)

养护类型字典表(dq_dic_maintenance_type)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int
- 养护名称 maintenance_name varchar 200

道桥基础表(dq_base_info)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 道桥编号 part_code varchar 20
- 道桥名称 part_name_varchar 100
- 起点 start varchar 100
- 终点 end varchar 100
- 长度 length double (10,2)
- 宽度 width varchar 20
- 面积 area double (10,2)
- 所属区域id region_id int
- 养护单位id maintain_unit_id int
- 主管单位id manage_unit_id int
- 责任人 human_id int
- 巡检周期 cycle_days int
- 养护等级 maintain_level_id int (外键,dq_dic_maintain_level主键)
- 道路等级 level_id int (外键,dq_dic_level主键)
- 道桥类型 road_type int
- 路面结构 pave_structure varchar 200
- 设计单位 design_unit_id int
- 建设单位 develop_unit_id int
- 施工单位 construction_unit_id int
- 监理单位 supervision_unit_id int
- 开工日期 start_date datetime
- 竣工日期 completion_date datetime
- 接管日期 takeover_date datetime
- 设计使用年限 design_life varchar 10

道桥养护等级字典(dq_dic_maintain_level)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 养护等级名称 maintain_level_name varchar 20

道桥等级字典(dq_dic_level)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 道桥等级名称 level_name varchar 20

道桥检测报告(dq_test_report)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 道桥id dq_id int (外键,dq_base_info主键)
- 上传时间 upload_time datetime
- 上报人id report_id int
- 报告名称 report_name varchar 100

养护单位字典(dq_dic_unit)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 名称 unit_name varchar 100

人员字典(dq_human)

字段描述 字段名 数据类型 字段长度 是否可空 备注
P 主键标识 id int not null
- 名称 human_name varchar 100
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!