数据库的设计是一个项目的基石,数据库的设计质量直接影响着后期代码开发的进度,关于咱们组数据库的具体设计能够参考另外一篇博客(RDF搜索引擎——数据库具体设计)这里只谈一些设计过程当中的心得和体会。html
一,数据库设计流程数据库
关于数据库设计流程不一样课本不一样网站都有不一样见解,通过此次项目实践,我总结了比较适合本身的数据库设计流程以及每一个流程一些须要注意的事项。服务器
首先数据库的整个设计流程中从设计到最后检验都要始终注意数据完整性约束,包括实体完整性,引用完整性,域完整性,用户定义的完整性(业务规则约束)数据库设计
二,数据库的设计合理性问题post
数据库设计没有惟一答案,可是会有更好的答案,在实际设计数据库中不只要考虑正确性问题,还要考虑数据库设计的合理性问题,好比通常系统都会有权限管理功能,不一样权限的用户可使用的功能不一样,其中一种设计方案是不一样权限的用户分别创建一个表存储,而另外一个设计方案是用户都在一个表,用户组是一个表,把不一样用户分到用户组,功能分配只须要给用户组分配,表面一看二者均可以实现功能,可是后者显然更合理,由于它具备良好的拓展性和复用性,由于假如如今又有了一种新的类型的用户,第一种设计方案就又须要新建一张表存储这个类型的用户,好,这也能解决,但哪一天有了100种用户呢?1000种用户呢?再好比在确保用户用户注册帐号时要确保昵称的惟一性,这里可使用触发器实现,也能够设计惟一索引进行限制,可是哪一个更好一些呢?这个是否是也须要咱们去思考!因此咱们设计数据库不只要设计的正确,还要设计的合理,要有拓展性复用性,同时性能,可靠性也要好。性能
三,数据库的设计理论要结合实践网站
理论要结合实践,课本知识要辩证的吸取,好比课堂上讲到存储过程时更多地是在讲存储过程的好处,鼓励你们多用存储过程,对于存储过程难以调试的缺陷几乎一笔带过,咱们组此次数据库设计一开始就是严格按老师课堂上所讲把表格,视图,存储过程,触发器,权限,索引都逐个进行了思考,但到后来才了解到实际应用时会由于难以调试要尽可能避免使用存储过程,不过咱们不走这条弯路也意识不到理论实践要结合这一点教训。搜索引擎
总之,数据库设计这一路走来,感受很不容易,收获颇丰,期待小组项目最终的成功!url