Welcome

首页 / 软件开发 / .NET编程技术 / 循序渐进开发WinForm项目(1) 数据库设计和项目框架的生成

循序渐进开发WinForm项目(1) 数据库设计和项目框架的生成2014-03-28 博客园 伍华聪在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资 料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了。

其实也许我们每天面对的太多东西了,觉得很多都稀松平常了,即使很细微的地方,可能我们都已经 形成习惯了。反过来,如果我们切换到其他领域,如IOS、android,那么开始我们可能对里面很多设计 的规则不甚了解,开始可能也是一头雾水。

本篇想作为我的《循序渐进开发WinForm项目》系列的开篇,主要介绍数据库设计方面注意的一些事 项,从而方便项目框架的搭建和开发过程。

1、数据库表设计

俗话说万层高楼从底起,开发应用项目,数据库的设计很重要,它可能是业务对象,业务流程的综合 设计,好的数据库设计可以减少后期的重复返工,提高开发效率。

我们以一个简单的数据库表进行设计讨论,一步步分析其中的关系。

1)表和字段名称

一般表名称,根据不同的业务关系,我们可以使用不同的前缀进行区分,使用前缀,可以非常方便区 分不同的业务表,如我自己一般基础表使用 “TB_” 定义前缀,权限系统表使用 "T_ACL_"定义前缀,工作流表使用“TBAPP_”,业务表使用"T_"等, 这样对于区分不同的业务,方便管理很有好处。

字段名称方面,我们可以约定一些规则,如约定主键使用ID;一般来说,ID作为主键,可以使用自增 长的整形字段,也可以使用GUID的字符型字段,如果为了方便兼容不同的数据库且方便迁移或者开发基 于网络方面的应用,我建议还是使用GUID的字符型字段,使用这种类型的字段,我们从创建数据的时候 ,就可以知道这个记录的主键,对于我们维护父子表等关系非常有利。

字段的命名,建议一简单为主,如客户名称,直接使用Name来命名即可,不需要使用CustomerName这 样啰嗦的名称。

由于如果采用字符型的ID主键,那么我们如果需要正确排序的时候,可能需要增加一个CreateTime的 日期类型,方便我们根据日期进行排序。

如果这个表还有一个外键的引用,建议统一命名标准,我一般使用“表名称_ID这样的名称,如 User_ID、Contact_ID等相似的名称作为外键,不需要表的前缀。

2)数据库的模型设计

数据库的模型设计,我们建议在第三方的数据库设计工具上进行设计,如PowerDesigner这样的设计 工具,使用工具设计数据库有很多好处,一个是可以高效率进行调整,二是根据需要生成不同的数据库 类型Sql语句,三是可以全局了解各个表之间的关系等等。

使用PowerDesigner这样的数据库设计工具,能够在很大程度上提高我们数据库的设计效率。

2、项目框架的生成

设计好数据库后,我们通过代码生成工具进行整个项目框架的生成,这样对于我们在开发新项目上有 很好的好处,里面的项目层级、DLL的 引用关系,已经处理好了,这样对我们非常方便。不过大多数情 况下,我们都是增量开发较多,也就是我们可能前面已经完成了一些其他业务的开发,可能新增一个两 个表,或者一批业务表的处理,这样也没关系,我们把新生成的代码复制到项目即可,由于项目生成的 时候,指定了主命名空间和相关的表前缀,这样我们生成后的代码就方便阅读很多,减少累赘和出错的 机会。