zoukankan      html  css  js  c++  java
  • 从零开始编写自己的C#框架(9)——数据库设计与创建

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

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

    数据库设计规范

    文件状态:

    [√] 草稿

    [  ] 正式发布

    [  ] 正在修改

    文件标识:

    C#框架

    当前版本:

    0.1

    作    者:

    陈焕(AllEmpty)

    联系方式:

    1654937@qq.com

    更新日期:

    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原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过1654937@qq.com 联系我,非常感谢。

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

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

    只有将自己置空,才能装进更多的东西
  • 相关阅读:
    FFmpeg命令:几种常见场景下的FFmpeg命令(摄像头采集推流,桌面屏幕录制推流、转流,拉流等等)
    javaCV入门指南:序章
    javacpp-FFmpeg系列补充:FFmpeg拉流截图实现在线演示demo(视频截图并返回base64图像,支持jpg/png/gif/bmp等多种格式)
    javacpp-FFmpeg系列之3: 像素图像数据转换(BGR与BufferdImage互转,RGB与BufferdImage互转,BufferdImage转Base64编码)
    javacpp-FFmpeg系列补充:FFmpeg解决avformat_find_stream_info检索时间过长问题
    javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据
    Cache系列:spring-cache简单三步快速应用ehcache3.x-jcache缓存(spring4.x)
    运维程序】简单的命令控制器(支持定时命令执行、重复定时任务命令和进程管理,开发这个小程序主要是为了方便管理服务进程)【个人github项目】
    javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片
    spring-data详解之spring-data-jpa:简单三步快速上手spring-data-jpa开发
  • 原文地址:https://www.cnblogs.com/FinleyJiang/p/7600760.html
Copyright © 2011-2022 走看看