zoukankan      html  css  js  c++  java
  • 信息化基础建设 数据库文档

    数据库文档

    Benefit

    数据库文档不仅仅可以用来读,还可以拿来用。

    在《信息化基础建设 开发框架》一文中,提到过改进的智能提示支持。

    在SQL查询管理器中,当鼠标悬停在表名上时,可以显示表的注释

    创建表的描述

    clip_image001

    创建字段的描述

    clip_image002

    也就是如果我们在为数据库设计了文档,在写SQL语句时,这些附带的文档会智能的带出来,以供参考提示。

    而且,这些注释是可以带到C#代码中去的,在进行代码生成时,同时把这个值也给C#代码的属性提示,非常棒的特性。

    如下图所示,点击列名后的Edit,带出窗口,编辑提示内容,最后结果如下

    clip_image004

    再将这个注释文件,一键生成为数据库文档,写数据库文档的工作并不大。

    由于一套数据库可能由多个客户在使用,再配合工具,将已经注释过的数据库的文档,导出为SQL语句,在其它的数据库中执行一下,这样,所有数据库就都有了数据库文档。

    合理设计数据库

    数据库的设计方式,会影响它的可读性。

    LLBL Gen推荐的表设计最佳实践

    1. 给表设计主键

    2. 使用单数命名表,而不是复数。比如,客户Customers,这样做的好处是,当使用表关联时,命名不容易发生混淆冲突。比如,有一张订单Order, 它从多个客户那里购买原材料,这样,它便有一个Customers的属性。

    3. 不要在表/视图前加前缀。举例,表名tblCustomer,tblSalesOrder, tbl是多余的。我们使用数据库的频率远远大于视图和存储过程,如果在表名前加tbl是为了区别表和视图,存储过程,可以考虑在视图前加vw,在存储过程前加sp, 占使用频率最多的表,可以减少前缀字母。

    4. 定义外键引用关联。

    5. 在一个单一的非主键字段上,不要定义多个外键

    6. 使用唯一值unique values来约束列

    7. 不要给字段加前缀,有种命名方式是在字段前加类型别名,比如iAge,表示Age是int.

    8. 给字段取合适的名字

    9. 在开始项目之前,定义好并发机制

    10. 不要混淆unique index和unique constraint

    11. 在继承层次链中,定义1对1的关系

    12. 考虑用视图来代替大量的关系.

    Name construction specific settings ORM设计器命名设定
    • EnforcePascalCasingAlways (true)强制使用Pascal规则
    • EntityFieldNameStripPattern ({}{}) 实体字段名剔除模式

    字段的命名规则

    • EntityNameStripPattern实体剔除模式{tbl_}{_dev}. Default is {tbl_}{}

    对于以tbl_Employee的表名,实体名会自动去除tbl_前缀

    对于以_dev结束的表名,实体名会自动去除_dev后缀

    • FieldMappedOnManyToManyPattern多对多字段构造模式 {$StartEntityName}{$IntermediateEntityName}{$EndEntityName$P}
      $P or $S suffix 单数和复数 pluralize singularize
    • FieldMappedOnOneManyToOnePattern {$StartEntityName}{$EndEntityName}
    • FieldMappedOnOneToManyPattern
    • FieldMappedOnRelatedFieldPattern
    • MakeElementNamePascalCasing (true).

    所有字母小写,除了第一个字母,单词边界后的('_' or ' ')的第一个字母,去除空白

    • StoredProcNameStripPattern 存储过程命名去除模式 {pr_, sp_}{}
    • TypedViewFieldNameStripPattern
    • TypedViewNameStripPattern {vw_}{_dev}. Default is {vw_}{}
    • RemoveUnderscoresFromElementName(true) 去除下划线
  • 相关阅读:
    关于WPF程序引用(用到)的PresentationFramework.dll版本问题
    【转载】Jenkins在CentOS上安装部署
    关于2021/04/15实施3.0版本到中间层服务器发现IIS管理器的SVC无法浏览另类问题分析
    关于2021/03/02本地服务总线作业调度没起来问题分析
    【转】WCF服务部署到IIS7.5(备忘)
    Dapper参数化查询使用实例
    HIVE和HBASE区别
    Hadoop生态系统官网、下载地址、文档
    Hive中Sqoop的基本用法和常见问题
    读懂hadoop、hbase、hive、spark分布式系统架构
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/2079372.html
Copyright © 2011-2022 走看看