RDF搜索引擎——数据库设计心得

数据库的设计是一个项目的基石,数据库的设计质量直接影响着后期代码开发的进度,关于咱们组数据库的具体设计能够参考另外一篇博客(RDF搜索引擎——数据库具体设计)这里只谈一些设计过程当中的心得和体会。html

一,数据库设计流程数据库

关于数据库设计流程不一样课本不一样网站都有不一样见解,通过此次项目实践,我总结了比较适合本身的数据库设计流程以及每一个流程一些须要注意的事项。服务器

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

  1. 肯定需求:设计数据库前必定要先仔细分析清需求后再动手,磨刀不误砍柴工,需求分析不足或不正确就开始设计数据库后期会须要反复改(此次就由于太急了致使后期改了好屡次┬_┬)
  2. 肯定实体:简单的数据库可能不须要分析实体直接上,但稍微大点的项目先分析出实体对设计数据库颇有帮助。这里能够借助E-R图来进行辅助分析。
  3. 肯定表格:大致设计出表格,这里要注意的是关系数据库中的“关系”,要注意区分以前分析出的实体之间的关系是一对一,一对多仍是多对多,若是是多对多须要一张额外的关系表来表达彼此的关系。
  4. 肯定字段:分析肯定好表格中的字段,包括字段是否能够为空,数据类型,主外键,是否设置索引等等,这一步和前一步能够结合数据库设计的三个范式进行考虑。
  5. 反复检验:在正式在服务器里搭数据库前要反复检验数据库的设计的正确性以及合理性,若是不合理要及时进行修正迭代,在反复确认后再部署,尽可能避免部署了数据库后发现了问题再返回从新设计,这样损失会比较大。

二,数据库的设计合理性问题post

数据库设计没有惟一答案,可是会有更好的答案,在实际设计数据库中不只要考虑正确性问题,还要考虑数据库设计的合理性问题,好比通常系统都会有权限管理功能,不一样权限的用户可使用的功能不一样,其中一种设计方案是不一样权限的用户分别创建一个表存储,而另外一个设计方案是用户都在一个表,用户组是一个表,把不一样用户分到用户组,功能分配只须要给用户组分配,表面一看二者均可以实现功能,可是后者显然更合理,由于它具备良好的拓展性和复用性,由于假如如今又有了一种新的类型的用户,第一种设计方案就又须要新建一张表存储这个类型的用户,好,这也能解决,但哪一天有了100种用户呢?1000种用户呢?再好比在确保用户用户注册帐号时要确保昵称的惟一性,这里可使用触发器实现,也能够设计惟一索引进行限制,可是哪一个更好一些呢?这个是否是也须要咱们去思考!因此咱们设计数据库不只要设计的正确,还要设计的合理,要有拓展性复用性,同时性能,可靠性也要好。性能

三,数据库的设计理论要结合实践网站

理论要结合实践,课本知识要辩证的吸取,好比课堂上讲到存储过程时更多地是在讲存储过程的好处,鼓励你们多用存储过程,对于存储过程难以调试的缺陷几乎一笔带过,咱们组此次数据库设计一开始就是严格按老师课堂上所讲把表格,视图,存储过程,触发器,权限,索引都逐个进行了思考,但到后来才了解到实际应用时会由于难以调试要尽可能避免使用存储过程,不过咱们不走这条弯路也意识不到理论实践要结合这一点教训。搜索引擎

总之,数据库设计这一路走来,感受很不容易,收获颇丰,期待小组项目最终的成功!url

相关文章
相关标签/搜索