Thinkphp5 开发 OA 办公系统 - 数据库设计

    自从接触到用PowerDesigner做数据库建模后,喜欢它就停不下来了。我发现现在很多2-20人的团队在做数据库结构设计时,还是会直接在phpmyadmin 或 navicat 里直接建表。这种直接建表的方式一开始看似节约时间,但当表多了,频繁变更表结构,需要讲表逻辑时,就不比用建模的方式方便直观。

    直接建表的方式还会很容易导致,不同的程序员实现不同功能时,自己建自己的表,导致数据库表结构混乱,没有一个人是全部知道这些表的清晰逻辑。

使用PowerDesigner来做数据库建模,一般都是由一个专门的人来建表维护,开发过程中如果遇到需求改动表结构,也是交给专门维护的人去改动,这样就有一个能把控全局的人了。

 

逻辑结构模型-实体

 

逻辑结构模型-实体的属性

       为了方便导出同步物理表结构,我做数据库建模时都不做实体之间的外键约束关系,直接在实体里添加对应同名的字段,加上注释。如果在实体之间都做上实体的关联关系,一是实体多了,关联关系线也多了,看起来总感觉眼花缭乱。二是导出的 sql 脚本同步到物理数据库里,很容易因为外键的约束关系和原来的数据表数据有不完整性,导致同步报错。

       PowerDesigner是一个非常强大的建模工具,除了做数据建建模,还能做需求分析、UML建模。由于我自己对UML建模这块的知识缺乏,一直都想提升自己,总是没找到提升的理由(或许我不想写代码的时候,有手下人写,我会提升到UML建模的方式),呵呵。

      这里我说说我的一个观点,让大家批评指正一下。我总感觉数据库建模,UML建模,这类开发方式在 Java 和 .net 团队应用的比较多。PHP 团队很少用,都是直接上来就撸码了。

       用PowerDesigner做数据库建模,已经成为我的习惯,就算自己一个人做项目,数据建模是我的必备开发流程。我曾经因为人家公司的开发组里没有人用数据库建模,谁写代码,谁建表而默默选择离职,现在回想起来,觉得自己那时真是年轻不懂事。

文采不好,请见谅。欢迎拍砖,批评,交流心得。

OA演示地址:http://oa.bodujie.com

如有疑问,欢迎加入QQ群:591528130(AI编程的立胜群) ,一起讨论交流学习。

原创作者:AI编程的立胜,QQ:282130106 。

如有转载,敬请注明原创作者与出处,谢谢。

上一篇:Thinkphp5 开发 OA 办公系统 - 原型设计

下一篇:Thinkphp5 开发 OA 办公系统 - 项目管理

猜你喜欢

转载自my.oschina.net/u/2476796/blog/1600945