MySQL 规范

MySQL · forecho · 于 5年前 发布 · 3656 次阅读

以下是我根据自己的工作经验整理的一些数据库命名规范,Yii 虽然没有明确的数据库命名规范,但是一个项目,特别是团队合作的项目,数据库命名有一个规范也是非常重要的。部分有借鉴 CakePHP 官方文档的数据库命名规范。

数据库命名总规则

  • 所有名称的字符范围为:a-z(小写字母), 0-9 和_(下划线)。不允许使用其他字符作为名称。
  • 采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
  • 名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。

数据表命名规范

  • 不使用tab或tbl作为表前缀(无需重复说明)
  • 表名以代表表内的内容的一个和多个名词组成,以下划线分隔,使用单数形式命名(CakePHP 是用复数形式命名表名的)。
  • 使用表的内容分类作为表名的前缀:如,与用户信息相关的表使用前缀 user,与内容相关的信息使用前缀 content
  • 表的前缀以后,是表的具体内容的描述。如:用户登录信息的表名为:user_login,用户在论坛中的信息的表名为:user_bbs_info
  • 一些作为多对多连接的表,可以使用两个表的前缀作为表名:

如:用户登录表 user_login,用户分组表 group_info,这两个表建立多对多关系的表名为:user_group_relation

  • 当系统中有一些少量的,重复出现的值时,使用字典表来节约存储空间和优化查询。如地区、系统中用户类型的代号等。这类值不会在程序的运行期变化,但是需要存储在数据库中。

数据表字段命名规范

  • 字段不使用任何前缀(表名代表了一个名称空间,字段前面再加前缀显得罗嗦)
  • 外键字段为当前表名加 _id,,比如:user_id,product_id
  • 字典名也避免采用过于普遍过于简单的名称:例如,用户表中,用户名的字段为 username 比 name 更好。
  • 布尔型的字段,以一些助动词开头,更加直接生动:如,用户是否有留言 has_message,用户是否通过检查 is_checked 等。
  • 字段名为英文短语、形容词+名词或助动词+动词时态的形式表示,遵循“见名知意”的原则。

以上也是 GetYii 开发所遵循的规范。

本帖已被设为精华帖!
共收到 0 条回复 MySQL 规范
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册