张三大队团队项目数据库设计心得


项目名称:基于深度学习的爆管监测系统

组别:张三大队

成员:厉平安 郭江浩 郭芮 周学才 崔舒媛

一、数据库总体设计思路

? 对于我们项目的数据库的设计思路来说,我们主要分成两个部分,第一个就是具体的数据方面内容而且需要有各个表之间的互相联系;具体的表主要是各种管道、阀门的信息以及按照时间序列得到的流量和压力数据,而且数据需要对应不同的测量仪器,所以每个阀门需要对应自己的数据;第二个是用户系统的各张表,在我们的系统里,我们设计了用户表、管理员以及超级用户表,另外需要一个工作单位表来联系各个用户的所属单位和具体管辖区域;第三个就是需要日志系统来对操作和修改等操作进行记录,防止以外出现。在设计具体数据库的时候,我们小组使用powerdesigner进行设计,首先进行数据库CDM也就是概念模型的设计,然后进行PDM也就是物理模型的设计,最后可以导出SQL语句以及生成数据库字典等后续任务。

二、CDM设计

? 数据库CDM的设计是数据设计的初步任务,我们使用的是PowerDesigner来进行设计:我们首先设计了用户系统和日志记录系统两部分,因为这两部分是紧密相连的,而且日志系统必然和用户有密不可分的关系:

日志主要记录的是普通用户对各种设备的修改和添加情况,而管理员日志主要是将管理员的操作记录下来,包括新建用户,删除用户等操作,这两张表的数据只增不减;对于用户表来说,用户表将包括普通用户、管理员和超级管理员的信息,包括ID、密码等,而且每类用户也拥有不同的属性:比如公司,超级管理员没有单位属性;普通用户管理区域编号的属性;所以在这里需要一张单位表作为用户表的外键索引,在这里我们每个属性都需要有所考虑:包括其是否是主键,能否为空等等,拿用户表举例,我们定义了不同的域来满足每个属性的要求和约束:

然后是各种设备的表:在这里我们采用的是建立一张信息对应表来达到效果,比如管道和阀门,虽然是不同的东西,但是为了减少数据冗余,这里我们用了一张数据对应表,将这几个设备都弄在一起:

	在这张图里,可以看到,针对数据采集器、阀门和管道,我们将它们的信息都进行了集成,而在具体的数据下面,我们对阀门进行分类、分别是手动阀门和电动阀门;采集器也是用这种方法,利用一个类型属性来区分压力计和流量计,并且每个流量计和压力计都需要记录相应的数据。对于传入的数据,需要具体记录数据值和记录的时间;

二、PDM设计

? 由于PDM的设计直接由CDM导出,那么可以直接导出查看结果是如何的:

? 而且可以直接通过PDM导出SQL语句帮助建表,以及生成数据字典;

三、总结

? 这次的数据库设计,我们使用了数据库设计软件powerdesigner进行了数据库设计,通过设计CDM来生成PDM,最后生成了数据库字典和SQL语句,通过团体项目的数据库设计,我充分了解了数据库的设计过程和对于数据库表的约束的各种考虑,完成了团队项目的数据库设计。