数据库设计心得

在数据库设计的时候,我们组犯了一个巨大的错误,我们在每个表中加上了所有他需要的外键字段,所以在生成pdm的时候实体中可能会出现两个相同的字段,在别人的帮助下,我们发现,只要通过关系,我们就可以把外键直接加到需要的表内,不需要重新加字段。同时在做数据库设计的时候,我们最好要写好业务流程以及流程图,对每一块的功能进行分析,然后根据功能去设计我们的数据库会事半功倍。-------hly

本次数据库设计我们小组通过两个核心需求(识别、搭配)分解出业务流程,辅以原型来一一确定所需要的数据库。首先,围绕着识别的功能,我们设计了“菜品表”和“果蔬表”,用以跟识别后的结果相连接,给出食物的糖分等具体信息。而在搭配功能上,用户操作有两条路径,一是“识别->加入菜单->给出搭配结果->用户选择是否加入已吃食物”,在这个路径上,我们需要保存的数据是用户已吃食物(故设计“历史食物表”)。另外一条路径是“今日推荐膳食->加入已吃食物”,需要添加的表是“推荐膳食表”。在两个主功能之外,需要的小功能有记录病例(“病例表”),用户信息(“用户表”)等等。
本次设计一开始是从梳理业务流程并添加所需要的表,再到设计cdm的详细字段以及表之间的关联。在这个过程中小组总共开了三次会议,每次都达到3小时以上,成员也都积极配合,共同思考。感觉上市有望了。-----hlb

本次项目的数据库的设计,加上之前对数据库的使用的经验,我们的思路还算清晰,对于powerdesigner的使用也比较熟练。根据大家对业务的了解,并且自身拟化成用户,完成了相关的功能的使用,让我们对数据库逐渐有了一个大的框架。然后组员们再细分为几个重要的数据,建立了几个基本的表,再考虑每一个表的主键的设立,有的为相关业务的编号,有的为多个字段组成的复合主键,有的则为了确保主键的唯一性,设立了相应的标识符,标识符的设立我们也思考了很久。再接着,则考虑每一个表之间的连接的联系,并从性能、使用程度、方便程度等方面确定了每一个字段的数据类型。总的来说,由于之前从来没有考虑过设计一个项目的数据库,实际操作的同时,也发现了许多之前没有考虑到的问题,一个项目的数据库不仅是要面向我们编码人员,还有后台数据库的维护成员,这可不是一件简单的事呢,我们还要逐步完善我们的数据库设计,才能更好地优化我们的程序,提高其使用度。-----lwb

在数据库设计的时候我们考虑了三个范式的约束,以及数据库的主外键约束。在一次次讨论剖析中,遇到了很多之前没有想到的问题。譬如说在设计CDM的时候我们是考虑了外键的,但是转化成PDM后发现跟我们想的表有所出入。然后进一步讨论后才知道CDM不用考虑外键,两个表连接起来之后,生成PDM的时候如果表A对表B是一对多,那么表B就会把表A的主键自动作为自己的外键加入表内。这次数据库的设计很感谢有这么可爱的队友和我一起努力成长,让我们在合作中加深友谊,增长知识,真正达到了做中学的初衷。同时这次数据库设计让我对数据库的知识有了更深入的理解,也对整个项目加深了理解,受益匪浅。---lxt

 

数据库设计要考虑设计的数据库能否满足业务需求。就是要保证数据的完整性。在此基础上还要考虑,使用时,插入,删除是否方便。这就要求规避数据冗余,插入异常,删除异常。对于数据冗余问题,我们就要将冗余的数据拆分成一个表,其他表通过外键来获取该表的内容。合理的拆分数据库中的表,尽量满足第三范式可以规避数据使用时的异常。但是对于一些只读不写的表,我们可以选择不用严格满足第三范式。因为拆分表虽然解决了异常,但读取数据时往往要联合多个表,造成读取的不便。数据库的设计终归没有一套严苛的标准,只要实际行之有效即可。------mzh

posted @ 2019-11-08 21:11  lygghsd  阅读(90)  评论(0编辑  收藏  举报