信息化基础建设 数据库文档

数据库文档

 

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) 去除下划线

 

posted @ 2011-06-13 09:22  信息化建设  阅读(907)  评论(1编辑  收藏  举报