数据库规范

建站交流7年前 (2018-09-30)12600

表规范

  • 命名统一小写下划线

  • 非CMF核心应用,统一带应用表前缀,如portal_

  • 插件表,统一带插件表前缀,如:plugin_demo_

  • 表默认编码utf8mb4,默认排序规则utf8mb4_general_ci

  • 引擎统一innodb

  • 写表注释

字段规范

  • 命名统一小写下划线

  • 非自增主键一定要写字段注释

  • 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。

  • 数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的,但是又不能太小

  • 尽量不要允许NULL

  • 布尔类型的值均以 is、has、exist 或者 can开头

  • create_time作为记录创建时间

  • update_time作为记录更新时间

  • delete_time作为记录软删除时间

  • 需要软删除的表统一加delete_time字段

  • status表示记录状态

  • table_name作为表名,字段varchar长度64

  • remark代表备注,给管理员区分记录类型用

  • description代表描述给前台用户用

  • list_order代表记录排序字段,类型float,默认值10000,默认排序按从小到大

  • image 代表图片,thumbnail 代表缩略图,photos代表相册

  • 固定长度的字符串用char不用varchar

  • more代表表扩展属性,text类型

  • 除user表,其他表用user_id代表用户id

  • parent_id代表父级ID

  • 多语言排序要求字符串类型,统一utf8mb4_unicode_ci

内容保存规范

  • thinkcmf所有字段内容都是htmlspecialchars方法处理过的

富文本字段保存规范

  • 富文本字段里在保存时要用htmlspecialchars_decode解密后用cmf_replace_content_file_url处理后,再htmlspecialchars方法处理后再保存到数据库

注意cmf_replace_content_file_url第二个参数要设置为true

富文本字段显示规范

  • 富文本字段里在从数据库取出时要用htmlspecialchars_decode解密后用cmf_replace_content_file_url处理

文件路径保存规范

  • 所有上传的文件在数据库的保存格式都应该是相对路径,相对于 upload 目录,如/upload/20170912/b249b3a5bd5ab59f726afb5c73eae699.jpg在数据库中应该为20170912/b249b3a5bd5ab59f726afb5c73eae699.jpg, 在从数据库取出后可以用cmf_get_image_url函数和cmf_get_file_download_url函数转化为可以访问的 url 和可以下载的 url;

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。