从零开始编写自己的C#框架(9)——数据库设计与创建

  对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合;空间换性能;空间换开发效率;减少null异常......当然不同的公司与项目要求不同,初学者要学会适应不同的项目开发要求,使用本框架开发时,必须严格按照本章节的要求来设计数据库,不然可能会产生不可控的异常。

从零开始编写自己的C#框架

数据库设计规范

 


















文件状态:

[√] 草稿

[  ]
正式发布

[  ]
正在修改

文件标识:

C#框架

当前版本:

0.1

作   
者:

陈焕(AllEmpty)

联系方式:

[email protected]

更新日期:

2014-04-26



























版本/状态

作者

参与者

起止日期

备注

0.1

陈焕(AllEmpty)


2014-04-26

创建











目   


一、  
 文档介绍    3
1、文档目的    3
2、文档说明  
 3
3、读者对象  
 3
4、系统开发强度等级  
 3
5、使用工具  
 3
6、ExcelToSQLString2.91 for
July软件介绍    3
二、    创建数据库  
 4
1、  
 数据表设计要求    4
2、    数据字典设计要求  
 4
3、  
 数据库存储过程创建规范    5
4、    生成SQL代码  
 5

一、文档介绍
1、文档目的
本文档是《从零开始编写自己的C#框架》项目后台管理系统的开发指引说明。

2、文档说明
本文主要讲述数据库设计的要求与规范,开发者必须严格按照本规范来设计,不然可能在开发中会产生不可控的异常。
本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合;空间换性能;空间换开发效率;减少null异常。

3、读者对象
本项目的开发人员。

4、系统开发强度等级
(强度分为:容易、中等、困难)
当前难度为:容易

5、使用工具
Excel + ExcelToSQLString2.91 for July软件。

6、ExcelToSQLString2.91 for
July软件介绍

这个软件是我身边的大神July开发的,将指定格式的数据字典(Excel格式)转为SQL执行语句,减轻开发工作量。
经得July同意,现在无尝共享出来,后面代码中也会使用到大神开发的一些功能非常强大的函数或类,所以在这里也为他宣传一下,以对他无尝奉献的精神表示感谢。

July有十多年的开发经验,在我们的小圈子里的全能型开发人员(除了UI设计不会)。ASP、ASP.NET、PHP都有十年左右的开发经验,经手过的大中小型项目几十个(估计快上百个了),前后端(包括WinFrom开发各种进销存软件与应用、微信开发、WAP站开发)开发都非常擅长,非常精通前端切图、JS、CSS,在他手上没有解决不了的浏览器兼容问题。开发速度效率非常高,承接各种类型的外包开发。想联系他的话请加群327360708找July。

二、  
 创建数据库

1、    数据表设计要求
1.  
 数据库表名与字段名应遵守Pascal风格,包含一到多个单词,每一个单词第一个字母大写,其余字母均小写。(具体命名要求请查看第3章节)
2.  
 如果是关联表,则命名规则为R_表A_表B,如R_ProductInfo_Tag等。
4.  
 对于视图命名,规则为View_表A,视图由多个表产生,就用下划线连接几个表名,如View_ProductInfo_ProductClass。
5.  
 存储过程,命名规则为P_表名_存储过程功能名称。如P_ProductInfo_Add;如果该存储过程是很多表共用的,命名为:P_All_存储过程功能名称
6.  
 数据字段命名,也使用Pascal风格。当字段引用的是其他表字段时,使用表名_其他表字段名称,间用下划线隔开,命名规则:表名_单词。如ProductInfo表与ProductClass表关联的字段:ProductClass_Id,ProductClass_Name等。与外表的主键或相关字段引用时(包括状态值),须加同时添加外表所引用主键(或状态值)对应的名称,以方便查询时减少多表关联语句的编写,提高代码执行效率,详细请看《数据字典》中的设计。

2、  
 数据字典设计要求

必须使用附件中的Excel表并按里面设计格式来设计数据库(如下图)。

可能有的朋友会说,既然要按软件工程开发规范来做,为什么不用建模工具呢?
呃……其实对于中小型项目来说,我觉得不必要用建模工具来处理,那样很麻烦且更费时间,而使用本文介绍的工具,操作起来方便快捷,直接查看数据字典也很直观明了。

在设计字段名时,除了上面要求外,还有一些特殊的命名规则要求,这将会影响逻辑层生成的函数,当然有些函数如果名称与下面要求一致,而它却不是你想要的功能定义时,你可以忽略该生成函数,不去调用即可。具体如下:
1)  
 主键Id必须命名为“Id”,将会生成UpdateValue()函数,用来更新指定Id的记录;
2)  
 字段名包涵Name这个字串的,会生成GetXxxName()函数,可以直接读取该字段值;
3)  
 字段名包涵_Id这个字串的,会默认为该字段是外键Id,将会生成DeleteByXxx_Id()函数,用来删除当前表值为指定外键的所有记录;还会生成UpdateValue_For_Xxx_Id()函数,用来更新当前表值为指定外键的记录值;
4)  
 字段类型为tinyint的字段,会被默认为状态字段,会生成UpdateXxx()函数,用来更新该状态值;
5)  
 字段名包涵Key这个字串且该字段为string类型的,会生成GetModelByXxxKey()函数,主要功能是通过Key这个字段值来获取当前记录实体;
6)  
 字段名包涵Count这个字串且该字段为int型的,默认为访问计数字段,会生成UpdateXxxCount()函数,用来执行该字段值累加功能;
7)  
 字段名包涵Img这个字串且该字段为string类型的,默认为图片路径存储字段,会生成DeleteXxx函数,用来执行图片删除功能;
以上规则大家在开发中可以根据需要自己在T4模板中任意添加或修改,使用这种规则生成后,将会大大减轻开发人员的代码量与出错次数(主要减少重复代码的开发),提高开发效率。

另外单独说明一下《数据字典》中“上传管理”与“上传配置明细”这个工作表,它们是July开发的上传组件所要使用的相关配置表,只要配置好相要生成的图片大小与路径,那么就可以通过简单的调用得取想要的效果,在后面代码编辑章节会有详细例子介绍说明。

3、  
 数据库存储过程创建规范

在创建存储过程时,头部必须写上功能、创建人、创建日期及修改情况。存储过程主体必须写上清晰的注释说明。
例:


---------------------------------------------------------
--功能说明:删除用户使用日志

--操作历史
------操作 操作人 日期
------创建 Empty 2013-11-20
------修改
---------------------------------------------------------
CREATE PROCEDURE [dbo].[P_Userlog_Delete]

AS
BEGIN
--定义临时变量
DECLARE @UseLogReserveTime INT
--获取系统设置的操作日志保留日期
SELECT TOP 1 @UseLogReserveTime = UseLogReserveTime FROM WebConfig
--如果设置为无限制,则不执行删除程序
IF @UseLogReserveTime <= 0
RETURN 0

--执行日志删除程序
DELETE FROM UseLog WHERE DATEDIFF(d, AddDate, DATEADD(d, -@UseLogReserveTime, CONVERT(VARCHAR(10),GETDATE(),110))) >= 0

END

4、  
 生成SQL代码

在数据字典(Excel表)里设计好数据库架构后,用ExcelToSQLString2.91生成相应的SQL代码,然后打开SQL查询分析器运行后生成相应的数据表。
在Excel表中设计好数据库架构,设置好主键与排序标识,生成的SQL语句就会自动创建对应的主键和绑定排序列。(主意事项:主键Id设计时,名称必须为Key、Id、表名
+ Id或 表名 + _Id,不然使用SubSonic3.0插件时会出错)
打开ExcelToSQLString2.91软件

打开软件,选择《数据字典》文件路径,设置好要生成的表格名称,按图中的选项全部打好勾。
然后点击运行,生成对应的SQL语句。
 
将上面语句复制到SQL查询分析器中直接运行就可以了。

附件下载

 版权声明:

  本文由AllEmpty原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过[email protected]
联系我,非常感谢。

  发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:327360708
,大家一起探讨。

  更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/

从零开始编写自己的C#框架(9)——数据库设计与创建,码迷,mamicode.com

时间: 2024-12-08 23:52:08

从零开始编写自己的C#框架(9)——数据库设计与创建的相关文章

从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)

原本关于T4模板原想分5个章节详细解说的,不过因为最近比较忙,也不想将整个系列时间拉得太长,所以就将它们整合在一块了,可能会有很多细节没有讲到,希望大家自己对着代码与模板去研究. 本章代码量会比较大,基本将Web层要使用到的大部分函数都用模板生成了出来,而模板中的函数,很多也是互相关联调用的.另外在DotNet.Utilities(公共函数项目)中也添加与修改了一些类和函数. 需要特别说明的是,在逻辑层添加了July大神编写的超强上传类,具体怎么使用功能怎么强大,在后面调用到时会用一个章节详细说

从零开始编写自己的C#框架(18)——Web层后端权限模块——菜单管理

从本章开始,主要讲解的是页面中对框架相关功能的调用方法,比如列表页面(又分为有层次感列表和普通列表).编辑页面.多标签页面等,只要熟悉了这些函数的使用方法,那么开发起来就会很便捷了. 1.如图先创建菜单列表与编辑页面 MenuInfoList.aspx 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MenuInfoList.aspx.cs" Inherits=&quo

从零开始编写自己的C#框架——框架学习补充说明

非常感谢轩辕公子提出了对本框架的看法与意见,所以这里也将回复贴出来,让大家都了解一下 本系列的快速开发指的是,框架构建完毕后,在这个基础上开发新功能非常快捷方便,基本不用写太多代码就可以在短时间内完成大量的基本功能.当然如果直接将全部代码贴出来,直接上例子的话可能更容易理解,但这样的话对于很多想了解整个框架实现过程的朋友来说,一下子太多代码就很难理解最初的思路了,同时大家也看到每一章都会附上独立的解决方案也是这么一回事,通过循序渐进的方式来进行学习.原本想要写得更细更多章节的,但由于个人空闲时间

从零开始编写自己的C#框架(24)——测试

导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复Bug 10.对已修复Bug进行返测 11.将修复完成的Bug关闭,对未修复的Bug重新激活 12.灵活使用压力测试工具 13.测试与版本控制 14.小结 15.附件下载 1.前言 对于测试,很多公司并不看重,接触过不少朋友或客户,打开网站随便点击一下,就可以很容易发现爆黄页.404.UI变型(浏览器

从零开始编写自己的C#框架(15)——Web层后端登陆功能

对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置为启动项 2.添加引用 3.添加WebManage文件夹与Login.aspx文件 4.添加登陆页面HTML代码 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx

从零开始编写自己的C#框架(5)——三层架构介绍

原文:从零开始编写自己的C#框架(5)--三层架构介绍 三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发. 在这里为初学者们简单介绍一下三层架构: (下面内容摘自<趣味理解:三层架构与养猪-<.NET深入体验与实战精要>>,这是以前看到的关于三层架构介绍,觉得挺经典的,大家有时间的话认真看看) 对比以上两图,我们可以看出: 1)数据库好比猪圈 ,所有的猪有序地按区域或编号,存放在不同的猪栏里. 2)DAL 好比是屠宰场 ,把猪从猪圈取出

从零开始编写自己的C#框架(4)——文档编写说明

原文:从零开始编写自己的C#框架(4)--文档编写说明 在写本系列的过程中,了解得越多越不知道从哪里做为切入点来写,几乎每个知识点展开来说都可以写成一本书.而自己在写作与文档编写方面来说,还是一个初鸟级别,所以只能从大方面说说,在本框架开发所需的范围内来讲述相关要用到的知识点,至于要更深入的去了解,请大家观看其他大牛的博客或购买书籍来学习. 为了加快进度,会对目录进行修改,将一些知识点合并或在后面使用的章节再进行描述. 谢谢大家的支持,如果您觉得本文对您有所帮助,请帮忙点击支持或发表评论. 在开

从零开始编写自己的C#框架(3)——开发规范

原文:从零开始编写自己的C#框架(3)--开发规范 由于是业余时间编写,而且为了保证质量,对写出来的东西也会反复斟酌,所以每周只能更新两章左右,请大家谅解,也请大家耐心等待,谢谢大家的支持. 初学者应该怎样学习本系列内容呢?根据我自己的学习经验,一般直接看一遍的方法,学习与认知都会比较浅,很快就忘了.而看完后写笔记.手抄或将所看的内容照着打一遍或多次的,可以比较深刻的理解文章或代码中的思想,并能将里面的核心内容牢记在心. 对于开发规范,都是老生常谈的事情了,很多正规一些的公司都有一套规范来约束,

从零开始编写自己的C#框架(1)——前言

原文:从零开始编写自己的C#框架(1)--前言 记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子.十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书.而再后来也差不多,自学了很多不同的知识,都一直只能自己默默的克服一个又一个困难.所以这几年带一些应届生或只有一两年经验的新人时,都会同他们讲:你们现在太幸福了,有问题可以找度娘,还可以找我来解决.做为过来人,能深深的体会到刚入门的时候,没有系统的介绍和老师指