Laravel 4 项目开发与命名规范

为了便于后期维护,现对使用 Laravel 4.2.x 的项目做出开发与命名上的约束。本文只对某些重点做出具体约束,可能存在遗漏的地方,欢迎补充说明。

自动加载

Laravel 使用 Composer 进行源码管理,自动加载推荐遵循 PSR-4 规范,可以到此查阅相关文档:

PSR-4中译文

Composer Autoload不完全中译文

数据库命名规范

参照 Laravel 模型相关内容,我们可以看出,Laravel 倾向于使用复数名词作为表名,Laravel 框架自带了一个 User 模型操作 users 用户表。

推荐使用三个小写字母以上的字符串作为数据库表前缀,如芽丝内容管理框架就使用yascmf_作为表前缀。

数据库表默认使用utf8_unicode_ci作为排序规则。

数据表名与表字段推荐使用全小写英文字母,单词之间采用下划线 (_) 作为分隔符;数据库字段应避免使用 MySQL 关键字(如descnullcountorder 等 );数据库表及字段在设计时应添加与保留注释(即 COMMENT )内容。

使用Laravel ORM时,可能还需要添加额外的字段,如自动时间戳记录的字段 created_atupdated_atdeleted_at 等。

SQL 语句的编写中,凡是 SQL 语句的关键字一律大写,如:SELECTORDER BYGROUP BYFROMWHEREUPDATEINSERT INTOSETBEGINEND 等。

遵守第三范式 3NF 标准的规定:

A.表内的每一个值都只能被表达一次。

B.表内的每一行都应该被唯一的标识(有唯一键)。

C.表内不应该存储依赖于其他键的非键信息。

主键(包括联合主键)与索引名应表义清晰明确,唯一索引建议带上_unique缀名,以与其它普通索引区别。

- 阅读剩余部分 -

MySQL join用法小结

本文参阅了:http://www.5idev.com/p-php_mysql_inner_join.shtml

MySQL JOIN 语法概述

SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。

JOIN 通常与 ON 关键字搭配使用,基本语法如下:

... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition

table1 通常称为左表,table2 称为右表。ON 关键字用于设定匹配条件,用于限定在结果集合中想要哪些行。如果需要指定其他条件,后面可以加上 WHERE 条件 或者 LIMIT 以限制记录返回数目等。

MySQL JOIN 分类

JOIN 按照功能大致分为如下三类:

INNER JOIN(内连接):取得两个表中存在连接匹配关系的记录。
LEFT JOIN(左连接):取得左表(table1)完全记录,即使右表(table2)并无对应匹配记录。
RIGHT JOIN(右连接):与 LEFT JOIN 相反,即使右表(table2)完全记录,即是左表(table1)并无匹配对应记录。



- 阅读剩余部分 -