### Coding小组(软三第3组)
数据库设计,说难也难,说简单也简单,如果我们按照下面的步骤来分解设计,我相信数据库就会是一件简单的事:
##### 确定表
面向对象的编程思想自产生以来经久不衰,“一切皆为对象”更是经典中的经典,这就说明在数据库设计中也可用对象的思想解决问题,那我们可以说一个表就是一个对象,而什么对象呢?那就看具体的业务了,老师一直提醒我们数据库的设计最主要的目的是为程序服务,程序依托于实际业务,这样简化一下,数据表就是实际业务存在的对象的映射。一般情况,当我们分析实际业务功能时,就已经分析出有哪些对象,基本确定要建哪几个表。比如,一个简单的新闻发布系统,最基本的有新闻、新闻类别等对象吧,如果有发布评论的业务,那评论又是一个对象,这样新闻表、新闻类别表、评论表就确定下来了。一目了然,我们就清楚这个数据库大体的框架。
回到小组的项目,主要做一个Web管理端,便于物联网系统设计者管理物联网中的网关、传感器设备。那这样,小组项目的数据库表也就一目了然了,网关、传感器设备表就确定下来了,同时,还能确定的是传感器类别表,传感器数据表。
##### 确定关系
表确定了,接下来就是如何确定表之间的关系,也就是加外键,把上一步划分的表重新组织起来,形成一个有机整体。确定关系需要根据我们的业务需要来确定。在我们的项目中,网关与传感器是有关系的:网关下面有传感器,网关负责接收传感器的数据,并进行转发,所以网关表和传感器表的关系就确定了,一对多的关系,所以在传感器设备表中,需要添加一个到网关的外键。同样,传感器类别与传感器也是一对多的关系,也要添加传感器到传感器类别的关系。
##### 具体字段的业务逻辑
数据库的整体框架出来了,接下来就是细化到某个字段的控制,比如我们有性别字段,我们要给这个字段加check,只允许其为男或女。在我们的项目中,没有这样的一些字段,在这里就不举例了。
##### 总结
数据库的设计是很重要的,如果数据库设计好了,我们在实现业务逻辑的时候会很便捷,否则,那会是一件很痛苦的事情。同时,数据库的设计也应在充分了解项目需求的情况下进行,也只有这样,我们设计的数据库才能支持系统需要的操作与需要。