内容模型与字段
怎么给不同内容定义不同的字段,以及为什么加字段不需要改数据库。
模型是什么
一个模型描述「这一类内容有哪些字段」。文章有来源和作者,产品有价格和规格,案例有客户和行业 —— 它们的字段不一样,但在系统里都是「内容」,只是带着不同的字段定义。
新建模型
后台 内容模型 → 新建模型,填模型名称与标识,然后逐行添加字段。每行需要:
| 项 | 说明 |
|---|---|
| 字段标识 | 模板里取值用,小写字母开头,只能含小写字母、数字、下划线 |
| 显示名称 | 后台表单里看到的标签 |
| 类型 | 决定用什么控件、存成什么格式 |
| 必填 | 保存时校验,为空会提示 |
| 可筛选 | 勾上才能在前台按它查询和比较 |
| 选项 | 下拉、单选、多选类型的可选值,一行一个 |
可用的字段类型
| 类型 | 适用场景 |
|---|---|
| 单行文本 | 型号、品牌、来源、作者 |
| 多行文本 | 简介、规格参数 |
| 富文本 | 需要排版的内容块 |
| 数字 | 价格、面积、数量(可比较大小) |
| 下拉 / 单选 / 多选 | 固定的几个选项 |
| 开关 | 是 / 否,例如「现货」「推荐」 |
| 日期 / 日期时间 | 上市日期、档期 |
| 标签 | 逗号分隔的关键词 |
| 单图 / 附件 | 一张图或一个文件 |
| 图片组 | 多张,每行一个地址 |
| 关联内容 | 指向其它内容的编号 |
为什么加字段不用改数据库
字段定义本身就是一条数据,值统一存在内容的扩展字段里。 这意味着:
- 加一个字段不需要执行任何数据库结构变更,没有迁移失败的风险
- 删掉一个字段,它的历史值仍然留在库里;把同名同类型的字段加回来,值就恢复了
- 一个站点可以有几十个模型,而数据库里还是那几张表
可筛选字段是怎么工作的
只有勾了「可筛选」的字段会被写进一张独立的索引表,前台按字段查询时走这张表。
好处是查询有索引、数字按数字比较 ——
如果不这样做,价格 9 会排在 100 后面,因为字符串比较就是这样。
改模型标识要当心:模型标识被改名时,系统会同步把已有内容的模型标记一起改掉,
所以内容不会「失联」。但如果改成一个已被占用的标识,会直接拒绝并提示。