智慧道桥监管平台数据库设计说明书
引言
编写目的
为了完成系统的数据结构设计,为下一步的开发做好准备,编写本文档。由于本系统目前是产品的第一个版本,而与竞争产品相比,系统在灵活配置、业务覆盖范围等方面会做比较大的改进。
本文档预期的读者是产品设计、开发人员和测试人员。
背景
产品名称:智慧道桥监管平台
任务提出者:北京数字政通科技股份有限公司
任务开发者:数据服务产品部
第一用户:城管局、市政处
术语定义
设计规范
数据库表规范
(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 |
|
|