zoukankan      html  css  js  c++  java
  • 一图迁移数据库设计心得——咸鱼队

    数据库设计心得

    分析需求

    数据库设计首先要先明确需求,数据库的整个设计流程中从设计到最后检验都要始终注意数据完整性约束,包括实体完整性,引用完整性,域完整性,用户定义的完整性(业务规则约束)

    数据来源

    在设计数据库之前,先从需求文档中提取数据库设计应该包含的数据,按照对需求的理解,数据库中的数据主要有三个来源。

    第一: 系统初始化需要导入的数据

    第二:用户存储数据

    第三:软件通过对上述两个数据的处理得出来的新数据

    数据去向

    数据库中数据的输出主要有两个去向:

    第一:作为系统数据

    第二:传输给用户

    设计数据库

    在学习了相关知识后,开始设计CDM

    根据来源,我设计了相对应的实体

    第一:系统初始化需要导入的数据

    软件界面实体

    模板实体

    角色实体

    用户权限实体

    迁移程度实体

    第二:用户存储数据

    用户实体

    图片实体

    迁移图片实体

    第三:软件通过对上述两个数据的处理得出来的新数据

    1.用户和图片之间定义了收藏关系

    2.用户,模板,图片,迁移图片之间定义了历史记录实体

    实体字段设计

    主要设计体现在图片的存储方面:因为图片比较大,不能直接存储在数据库中,所以对图片,模板,迁移图片,统一存储其对应的存储路径

    其它的为了统一数据格式,对每一个非关系的实体添加一个编号,用于唯一标识。编号长度一致,便于数据的传输以及处理。

    检验校正

    在设计完相对应的实体之后,进行了CDM的校验,主要进行了以下两个方面的思考

    数据是否完整

    通过校验,我无法判断数据是否完整,因为需求还有许多不确定的地方,这就导致没有校验的标准。

    数据是否冗余

    通过校验,在我的理解中,设计的CDM不存在数据冗余的情况

    总结

    总结:黄幸平

    一、通过本次数据库设计主要获得以下几点教训

    1.在你使用一个工具软件时,先去学习相关教程,这会节省很多时间,也可以避免发生奇奇怪怪的错误。

    2.在需求未确定时,不要去设计数据库,这会导致数据库设计的失败,脱离了需求的设计对项目并没有产生效益。

    针对数据库设计中需要绘制的CDM,PDM以及数据字典

    二、完成的准备

    主要通过网上的视频教程全面的学习了CDM的设计,从而在设计过程中不会因为知识不够导致不能快速掌握建模软件,完成建模工作。从视频教程中,我主要了解到了powerdesigner CDM部分工具的作用,各选项卡的对应功能,以及避免了许多不必要的错误。例如:

    1.CDM不同于PDM,在不同实体中不会有相同的字段,PDM的主外键通过关系来表示

    2.在我的理解中,多对多关系等同于实际数据库中的关系表,如果想要在关系表中添加其它字段,不应该用实体来代替关系表,在CDM中通过association框来代替关系

    3.在association中不要出现跟其他实体相同的字段,而应该通过一对多关系来表示这种数据上的依赖,在转发为PDM时,一对多关系会自动将一对应实体的主键作为多对应实体的外键。

    4.在设计CDM时,要注意intentify的填写,indentify为CDM的主标识符,可以添加多个标识符,其它的为副标识符。

    实际上还有许多的注意事项,没有通过系统的学习是不会了解到的。

    总结:张鼎

    谈一谈近来编写数据库的一些心得,虽然说是第一次编写数据库,但是实际上我们这次大任务中穿插了很多小实验,根据数据库的实验很多,所以其实我们的额经验也是在不断的增加,从刚开始在课程上学到的一些基础知识,到后面实际编写数据库时从指导老师那里获得的一些经验指导,数据库一开始时连表的编写都不算严谨,数据类型和相关的基础实体都不确定,然后是我们在编写表的数量时将表的数量限制的太少,有些表非常不合理,而且因为是一个基础软件,所以还需要一些相关的拓展性,比如允许增加用户输入图片的数量等,这方面我们一开始是限制了用户一次输入的量,但这实际上对拓展不利.然后是在相关的内容评述时缺乏对实际的考量,例如在历史数据存储时我们一开始是将所有的图片数据存储在一起,只是设置相关的字段进行调用,但是历史数据实际上调用较少,应该额外设置一个表来储存,这样调用时就不会受到新数据的影响,同时在设计相关内容时对工具的使用认识不足也是一个问题,有一些功能也是后来上网查才知道,例如重新排布表的位置,对一个数据库的不同部分可以分文件写等,这些都是这次编写数据库的收获。

    数据库的设计是一个项目的基石,数据库的设计质量直接影响着后期代码开发的进度,在这里谈一些在设计过程中的心得和体会。

    总结:董俊宏

    1.首先我们需要弄清楚项目的基本目的,根据需求进行分析,总结出我们需要大概多少张表,关于表的设计,其实不应该仅仅只考虑到那些表面上的实体表,还应该考虑一些根据类型的表,这些表可能用户看不到,也没有什么具体的表现形式,但是可以大大减少一些不必要的工作,以及方便我们对项目中一些功能的设计 2.关于数据库的具体设计,我觉得应该需要根据具体情况进行分析,可能同一个需求,同一个项目,在不同的设计理念之下,完全可以不需要要求完全一致 3.在设计数据库的时候,我们应该理清各个表之间的关系,根据这些关系,以及第一第二第三范式,来对数据库进行规范化,同时,为了方便我们使用数据库,我们可以考虑添加一些视图,存储过程以及触发器等等工具,来方便我们使用,但同时也需要考虑调用时的一些时间消耗问题

    总结:路宁

    1、在团队中,我体会到交流的重要性,可能个人完成某件事或者某个功能的时候只需要独自加油就行,但是在团队中就需要协同交流。

    2、数据库的设计需要从需求中一点一点的确定数据库实体以及字段,然后在慢慢的确定实体与实体之间的联系;这是一个造房子的过程只有慢工出细活的功夫才能真正的完成;同样如果我们拥有成熟的经验和判断我们可以很快速的完成这项工作,所以对于现在的我们来说一步一个坑的慢慢来;

    3、项目的需求对数据库来说是一个磨人的小妖精,让你摇摆不停;因为需求的多次变化使得数据库的多次返工,太磨人了;

    4、数据库设计的合理性和实用性,这些真的很难决定。因为数据库没有标准答案,只有更完善、更实用、更便于维护。所以一个相对更好的数据库需要集结很多人的智慧结晶;

    总结:姜海同

    数据库的设计是一个项目的基石,数据库的设计质量直接影响着后期代码开发的进度,在这里谈一些在设计过程中的心得和体会。

    确定需求:设计数据库前一定要先仔细分析清需求后再动手,需求分析不足或不正确就开始设计数据库后期会需要反复改好多次,费时费力。

    1.确定实体:首先就是开会讨论实体,由于最开始要求我们至少要有15个表,所以最初凑表的过程很艰难,最终跟老师确认可以减少到10张表。

    2.确定表格:大体设计出表格,这里要注意的是关系数据库中的“关系”,要注意区分之前分析出的实体之间的关系是一对一,一对多还是多对多。

    3.确定字段:分析确定好表格中的字段,包括字段是否可以为空,数据类型,主外键,是否设置索引等等,这一步和前一步可以结合数据库设计的三个范式进行考虑。

    4.反复检验:在正式在服务器里搭数据库前要反复检验数据库的设计的正确性以及合理性,如果不合理要及时进行修正迭代,在反复确认后再部署,尽量避免部署了数据库后发现了问题再返回重新设计,这样损失会比较大。

  • 相关阅读:
    指示函数
    Sql Server中的日期与时间函数
    http://www.jb51.net/softjc/33896.html(vs2010破解)
    什么是VC维?
    smalldatetime和datetime的差别
    基于大规模语料的新词发现算法
    向setInterval , setTimeout调用的函数传递参数
    取指定月份的天数
    SQL 写循环数据
    JavaScript事件一瞥
  • 原文地址:https://www.cnblogs.com/luning-6-1/p/11823152.html
Copyright © 2011-2022 走看看