[数据库规范]
[表规范]
- 命名统一小写下划线
- 非CMF核心应用,统一带应用表前缀,如:
portal_ - 插件表,统一带插件表前缀,如:
plugin_demo_ - 表默认编码
utf8mb4,默认排序规则utf8mb4_general_ci - 引擎统一
innodb - 写表注释
[字段规范]
- 命名统一小写下划线
- 非自增主键一定要写字段注释
- 数据类型尽量用数字类型,数字类型的比字符类型的要快很多。
- 数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的,但是又不能太小
- 尽量不要允许NULL
- 布尔类型的值均以 is、has、exist 或者 can开头
create_time作为记录创建时间update_time作为记录更新时间delete_time作为记录软删除时间- 需要软删除的表统一加
delete_time字段 status表示记录状态remark代表备注,给管理员区分记录类型用description代表描述给前台用户用list_order代表记录排序字段,类型float,默认值10000,默认排序按从小到大image代表图片,thumbnail代表缩略图,photos代表相册- 固定长度的字符串用
char不用varchar more代表表扩展属性,text类型或longtext类型- 除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;
