论坛风格切换切换到宽版
  • 4159阅读
  • 5回复

PHPWind代码规范(四) MySQL/SQL规范 [复制链接]

上一主题 下一主题
离线骨头
 

发帖
27319
金钱
3728
威望
136377
只看楼主 倒序阅读 使用道具 楼主  发表于: 2010-01-05
— 本帖被 phpwind 从 PHP开发讨论 移动到本区(2010-08-27) —
1 命名规范

1.1 表名
表名用英文单词的复数形式, 全部采用小写的英文字母, 多个单词间以下划线连接. 多个单词连接的表名除最后一个单词采用复数形式外其他单词都用单数. 例如:posts, topics, uploads,upload_images

1.2 字段名(列名)
全部采用小写的英文字母,采用名词的单数形式, 多个单词连接用下划线; 例如created_at,updated_at,description

1.3 主键
全部采用小写的id, 注意多表查询的时候采用table_name.id的形式.

1.4 外键
外键列名称采用全小写, 键联表的单数加下划线连接id形式(表名单数形式_id”, 例如 post_id, topic_id,upload_id. 外键命名采用 “fk_当前表名_on_外键列名称的形式, 例如要将posts.topic_id 的字段作为外键约束, 则该外键命名应该是 fk_posts_on_topic_id

1.5 索引
小写, 采用“index_表名_on_字段名的形式. 例如 comments 表有个post_id字段需作为索引, 则该索引的名称应该为index_comments_on_post_id

1.6 储存程式
小写, 多个单词以下划线连接, 尽量语义表达, 例如 get_customer_balance

1.7 触发器
小写, “表名_情态动词的形式. 例如从posts表里面删除一条记录的触发器命名应该是 posts_deleted, 插入记录则命名为 posts_inserted, 更新则用 posts_updated

1.8 视图
小写, 采用“xxx_view_list”的形式.

1.9 临时表
小写, 采用“tmp_表名的形式.

2 查询语句(SQL)

2.1 SQL编写规范
SQL保留字和关键字大写, 列名、表名和别名小写的形式.

例如: SELECT id, foo FROM bar;

多表查询中相同的字段名需加上表名前缀并定义别名, 例如:
SELECT foo.id AS fid, bar.id AS bid FROM foo, bar;

一行不宜太多字符(一般80-120个字符后需换行), 多行须注意换行, 缩进. 例如:
SELECT some_field
FROM film f
INNER JOIN film_category fc
ON f.film_id = fc.film_id
INNER JOIN film_actor fa
ON f.film_id = fa.film_id
WHERE fc.category_id = c.category_id
AND fa.actor_id =a.actor_id;

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水

客户端及版本等新消息请关注 新浪微博@某骨头 .


离线骨头

发帖
27319
金钱
3728
威望
136377
只看该作者 沙发  发表于: 2010-01-05
人工顶顶, 有人来刷版,这个情况不好

客户端及版本等新消息请关注 新浪微博@某骨头 .


离线liangdi8

发帖
12975
金钱
2113
威望
3106
只看该作者 板凳  发表于: 2010-01-06
我来看看  有空就多看看各种技术文章,时间久了 自然就心领神会了,
学啥都可以
离线oamax
发帖
15
金钱
201
威望
1
只看该作者 3楼 发表于: 2010-01-07
嗯·  学习了··
离线红黑墨水
发帖
164
金钱
329
威望
3
只看该作者 4楼 发表于: 2010-01-09
前排学习
离线xjzz51

发帖
615
金钱
84
威望
14
只看该作者 5楼 发表于: 2010-02-06

最后那段不太明白~