数据库规范
表规范
命名统一小写下划线
非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;