惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
罗磊的独立博客
F
Fortinet All Blogs
T
Threatpost
Y
Y Combinator Blog
博客园_首页
美团技术团队
Security Latest
Security Latest
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
V
V2EX - 技术
The Cloudflare Blog
L
LINUX DO - 热门话题
博客园 - 司徒正美
Jina AI
Jina AI
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
The Hacker News
The Hacker News
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Latest news
Latest news
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
雷峰网
雷峰网
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
W
WeLiveSecurity
D
DataBreaches.Net
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
S
Securelist
Help Net Security
Help Net Security

博客园 - 一麦

GridView的增删改查和分页 - 一麦 - 博客园 团队开发之环境搭建 XXX公司CRM项目开发日志 Coolite Toolkit学习笔记 LINQ新特性简介及入门教程 反射学习 常用正则表达式 正则表达式基本用法 正则表达式基础 页面生命周期小结 设计模式小结 Asp.net 中HttpHandler,HttpModule,IHttpHandlerFactory的原理与应用(一) 3.x新特性 FileStream读写文件【StreamWriter 和 StreamReader】 .NET常用集合类 面向对象点滴 C#基础点滴 全新对待.net---一次全面的旅程 - 一麦 委托和事件--一直以来的痛 - 一麦
.Net下SqlServer命名规范
一麦 · 2010-07-17 · via 博客园 - 一麦

  规范一直是团队开发中一个很重要的接口,而命名规范在规范中确实极为重要的一个部分,后续会继续介绍编码规范,UI层的控件命名规范及其他规范。这里简单整理一下关于.Net下SqlServer的命名规范,当然大部分也适用与其他平台下及其他类型的数据库。

  对于数据库的命名规范,目前考察的主要有两种方式:一.前缀式,二.非前缀式。

  之前一直使用前缀的方式,如表名前一般会使用三个字母代表的表模块缩写作为表前缀,如系统模块下的用户表:sys_user;字段名前一般使用三个字母代表的表前缀缩写作为字段的前缀,参考数据库命名规范。使用这种前缀式的命名规则,主要是考虑模块之间的清晰性,以及表与表之间外键的前缀关系更加明朗,网上也有不少这类的标准。但是,个人感觉这种方式下,使用一般的代码生成器(非自己写的)生成数据访问层类时,不能很好的处理前缀,导致生成的类显得不够规范。如果使用自己开发的代码生成器来生成代码类的话,前缀的方式是非常不错的,它可以很好的区分各个模块的代码,通过表前缀的方式,然而,限于自己能力有限不能开发出如MySoft.Data,NBear,Subsonic这样优秀的数据库访问层,所以目前暂时放弃了这种命名方式。另一种命名方式,就是不采用表前缀的方式,网络上也有这类的规范,感觉非常符合自己的总结,参看C#下的SQL Server命名规范.下面主要解析这种方式下的命名规则。

一.通用规则
1.各种命名必须严格按照Pascal方式命名,考虑到不是所有的生成工具都能够识别分隔符以生成Pascal方式命名的类与字段,所以取消了连接符的使用。但是表名仍采用以系统模块作为前缀的方式,便于表名是智能引用。

2.所有的SQL关键字全部采用大写
3.所有的表及字段尽可能的使用完整的单词货词组来表示,如果超过允许的长度例外。

4.如果有意义的缩写一律使用全大写,如主键使用ID,存储过程命名:SP_表名_方法 

二.数据库命名

1. 用一个或三个以下英文单词组成,以Pascal方式,如:DepartmentManage

三.表命名
1. 每个表必须有一个表所属的模块前缀,该前缀在模块设计是定义好,模块前缀与表名之间使用下划线连接(之所以使用表前缀及使用下划线,主要是考虑编码时IDE的智能引用比较方便方便),比如System_Role,表示系统模块的角色表。

2. 表名以单数形式表示。

3.一个表如果需要使用多个单词表达,各个单词之间遵守Pascal命名规则,如:System_LogConfig
4. 关联表的命名使用被关联的表名组合命名,如:System_RoleModuleAction表示系统模块下的角色模块操作表
5. 每张表都有约定的4个字段(CreatedOn,CreatedBy,ModifiedOn,ModifiedBy),如果使用逻辑删除,使用IsDeleted字段,一般包含是否启用(IsEnabled)与排序字段(Sno)

四.字段命名
1. 如果字段为bool型,则使用"IsShow","IsValid","HasPassed","HasExamined","IgnoreCase"这种形式表示。常见的bool类型关键字有:Is,Has等
2. 日期类型的字段必须包含Date关键字,时间类型的字段必须包含Time
3. 用户类型的外键字段必须包含UserID,该字段有和用户表管理。如果是varchar类型不遵守该约定

五.其他对象命名
4. 存储过程命名:SP_表名_方法,如:SP_News_Add,SP_News_Update;

5. 视图命名:VI_表名,如:VI_News;

6. 表、存储过程、视图等对象的所有都为dbo,不要使用数据库用户名,这样会影响数据库用户的更改。

在开发过程中继续修改补充。。。