站点与内容

19 张表的结构与字段说明。

本页由 docs:sync 从数据库结构生成,请勿手工编辑。

sites

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
template_id bigint unsigned 是 — —
template_version int unsigned 否 1 站点锁定的模板版本
name varchar(255) 否 — 网站名称
slug varchar(255) 否 — 预览子域名标识:{slug}.preview.平台域名
status varchar(20) 否 draft draft / active / suspended
desired_state varchar(20) 是 — 客户最后发布意图 published|offline,异步任务校验最新意图
theme json 是 — 主题配置:主色、容器宽度等(受模板 config.theme 约束)
settings json 是 — 其他站点配置
is_dirty tinyint(1) 否 0 内容已变更、预览待重建
created_at timestamp 是 — —
updated_at timestamp 是 — —
widget_key char(36) 是 — AI 客服挂件公开标识(嵌入静态站点,不可猜测)
template_config json 是 — 建站时的模板 config 快照(sections/theme 等能力声明;null=回退读 templates 表)
template_slug varchar(60) 是 — 建站时的模板 slug 快照(模板删除后仍可展示来源/定位文件兜底)
source_revision bigint unsigned 否 0 数据快照版本 R:影响产物的修改在中央服务事务内递增
published_source_revision bigint unsigned 是 — 线上快照对应 R;NULL=needs_baseline(禁自动发布,须显式建基线)
change_sequence bigint unsigned 否 0 变更日志游标 L 的自增分配源(站点内单调)
force_full_revision bigint unsigned 是 — 下次发布须全量的触发水位(增量影子校验发散/退全量/异常),单调 max;全量发布覆盖后清
force_full_reason varchar(300) 是 — force_full 触发原因(审计)
preview_force_full_revision bigint unsigned 是 — 预览增量门闩:source_revision ≥ 本值前,预览一律全量重建基线;null=无门闩
preview_force_full_reason varchar(200) 是 — 置位原因(稳定原因码 + 脱敏文案);仅供运维排障
preview_rebase_registered_at timestamp 是 — 预览链深达软阈值的再基线登记时间;null=无待办。空闲调度消费,成功全量或链深回落后清除
preview_rebase_dispatched_at timestamp 是 — 再基线派发租约:非空=任务在途(排队或执行中)。Job 结束清除;超孤儿线由调度回收重派
preview_rebase_dispatch_token varchar(40) 是 — 再基线派发 fencing token:Job 领取/心跳/清理 CAS 比对;重派后旧任务自弃

site_versions

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
number int unsigned 否 — 站点内自增版本号
purpose varchar(20) 否 preview preview / release
path varchar(255) 否 — 构建产物目录(相对 build 根目录)
pages_count int unsigned 否 0 —
meta json 是 — 构建统计:耗时、文件数等
built_at timestamp 是 — —
created_at timestamp 是 — —
updated_at timestamp 是 — —
base_version int unsigned 是 — 增量基于的版本号;全量=NULL
build_mode varchar(12) 否 full full / incremental
chain_depth int unsigned 否 0 距上次全量的增量链长
renderer_fingerprint varchar(64) 是 — 模板快照+渲染器版本指纹,变化则退全量
artifact_digest varchar(64) 是 — 产物清单摘要
source_revision bigint unsigned 是 — 本产物绑定的数据版本 R
batch_id bigint unsigned 是 — —
artifact_bytes_owned bigint unsigned 是 — 本次构建的产物内容归属字节(硬链接计 0,复制回退计实际);不含 MFT/目录项/marker/私有清单等元数据开销;null=存量版本,预算回退现扫目录
artifact_bytes_logical bigint unsigned 是 — 产物树逻辑体量(清单文件 size 之和);诊断与体量展示用,S2 不做祖先删除后的 ownership 重归属

site_snapshots

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
label varchar(255) 是 — 快照备注/标签
kind varchar(20) 否 manual manual 手动草稿 / auto 系统自动(换模板、重建前自动打点)
payload json 否 — 站点全量可还原内容序列化(模板/主题/设置/企业资料/导航/页面模块/产品/文章/案例)
template_fingerprint varchar(32) 是 — 打点时站点私有模板文件的内容指纹(§13.41 #2):指向 site-templates/{site_id}.history/{指纹}/ 归档,还原按它恢复真历史模板文件;null=打点时无文件快照或归档失败(还原走原模板兜底)
created_by bigint unsigned 是 — —
created_at timestamp 是 — —
updated_at timestamp 是 — —

channels

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — 租户(红线 1)
site_id bigint unsigned 否 — 所属站点
parent_id bigint unsigned 是 — 父栏目(树形;预留,现恒空)
model_id bigint unsigned 是 — 绑定的内容模型(content_models.id;无 DB 外键=与 channel_id 同款删建型取舍;纯目录型父栏目可空)
key varchar(30) 是 — 内置栏目稳定标识 products/news/cases;自定义栏目为空
name varchar(60) 否 — 栏目名(列表页标题/导航默认文字)
slug varchar(50) 否 — URL 段
model varchar(20) 否 — 内容模型:product/article/case,预留 page/link
seo json 是 — 列表页 TDK 覆盖
sort int 否 0 排序(导航默认顺序)
visible tinyint(1) 否 1 前台可见;隐藏=列表/详情/导航/sitemap 整体不产出
field_schema json 是 — 内容级自定义字段定义(预留)
settings json 是 — 模型专属配置(预留:外链 url 等)
created_at timestamp 是 — —
updated_at timestamp 是 — —
cover varchar(300) 是 — 栏目缩略图(素材库路径;导航/栏目卡片用)
banner varchar(300) 是 — 栏目横幅图(内页头图,定制官网刚需)
in_nav tinyint(1) 否 1 进入自动导航树(可见性拆分:与 published 正交)
published tinyint(1) 否 1 是否构建输出(false=列表与内容页都不产出)
per_page smallint unsigned 是 — 列表每页条数(空=模板默认)
list_view varchar(60) 是 — 列表版式变体(columnViews 机制推广到每栏目)
detail_view varchar(60) 是 — 详情版式变体

content_models

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — 租户隔离(红线#1)
site_id bigint unsigned 否 — 站点归属
key varchar(40) 否 — 模型标识(模板视图目录 views/models/{key}/ 按它解析)
name varchar(30) 否 — 显示名,如「产品」「招聘岗位」
icon varchar(40) 是 — 侧栏图标名(lucide 图标标识,可空走默认)
field_schema json 是 — 自定义字段集(ChannelFields 同格式:含 display_as/list_visible 展示属性)
behaviors json 是 — 行为开关:has_detail/has_list/has_cover/has_images/has_tags/has_pin/has_schedule/has_specs/list_default 等
origin varchar(10) 否 custom preset=建站随模板种入 / custom=用户或AI自建——仅标记来源,权限完全同等
sort int unsigned 否 0 —
created_at timestamp 是 — —
updated_at timestamp 是 — —

contents

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — 租户隔离(红线#1)
site_id bigint unsigned 否 — 站点归属
channel_id bigint unsigned 否 — 归属栏目(channels.id;无 DB 外键=删建型还原/克隆取舍,模型层兜底,同 2026_08_20 迁移口径)
title varchar(200) 否 — 标题
slug varchar(190) 否 — URL 标识(栏目内唯一)
summary varchar(500) 是 — 摘要(列表卡片与 SEO 描述兜底)
body longtext 是 — 正文(格式见 body_format)
body_format varchar(10) 否 markdown 正文格式:markdown|html(RichText::FORMATS)
cover varchar(300) 是 — 封面图(素材库路径;所有模型统一有封面位,行为开关决定是否展示)
images json 是 — 图集(素材库路径数组;has_images 模型用)
extra json 是 — 模型专属字段值(按 content_models.field_schema 校验;不参与列表排序)
meta json 是 — 结构化附加(FAQ 等;承接 articles.meta)
seo json 是 — SEO 标题/描述/关键词
tags json 是 — 标签数组(has_tags 模型用)
status varchar(12) 否 draft draft|published|offline
is_pinned tinyint(1) 否 0 置顶
sort int unsigned 否 0 手工排序权重(列表次级排序)
published_at timestamp 是 — 发布时间(列表主排序)
scheduled_at timestamp 是 — 定时发布时间(到点自动上线)
deleted_at timestamp 是 — 回收站(30 天清理策略沿用)
created_at timestamp 是 — —
updated_at timestamp 是 — —

content_revisions

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
content_type varchar(10) 否 — article / product / case
content_id bigint unsigned 否 — 对应内容主键(不设外键:内容彻底删除后历史一并由清理命令回收)
payload json 否 — 修改前的完整字段快照
user_id bigint unsigned 是 — —
created_at timestamp 是 — —

content_plans

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
channel_id bigint unsigned 是 — 投放栏目(article 模型;null=内置新闻栏目)。不设外键:栏目删建型还原会与 restrict 死锁,悬空由消费端回退兜底
enabled tinyint(1) 否 0 是否启用自动发文
frequency_per_run tinyint unsigned 否 1 每次(每天)生成的文章数
locale varchar(10) 是 — 写作语言;null 用站点源语言
keywords text 是 — 目标关键词/主题方向种子(选题参考)
audience varchar(200) 是 — 目标读者/语气
auto_publish tinyint(1) 否 1 true 自动发布,false 仅存草稿待审
last_run_on date 是 — 最近一次自动运行日期(按日去重)
created_at timestamp 是 — —
updated_at timestamp 是 — —
interval_days smallint unsigned 否 1 自动发文间隔天数(1=每天,7=每周)

sections

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
page_id bigint unsigned 否 — —
key varchar(50) 否 — 模块实例标识,页面内唯一
type varchar(50) 否 — 模块类型:hero/products/about/...,对应模板 config.sections 的键
layout varchar(50) 是 — 当前版式,必须在模板该模块 layouts 枚举内
params json 是 — 模块参数(受模板该模块 params schema 约束)
content json 是 — 模块文案内容字段
visible tinyint(1) 否 1 —
sort int unsigned 否 0 —
created_at timestamp 是 — —
updated_at timestamp 是 — —

pages

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
key varchar(50) 否 — 页面标识:home/about/contact/...,对应模板 pages
title varchar(255) 否 — 页面标题
seo json 是 — SEO:title/description/keywords
sort int unsigned 否 0 —
created_at timestamp 是 — —
updated_at timestamp 是 — —
kind varchar(20) 否 template 页面渲染方式:template=平台模板(Blade) / ai=AI 生成源码(Liquid 安全渲染)
ai_source json 是 — AI 页面源码 {html,css,js}:html 为 body 片段含 Liquid 数据槽位;纯数据、绝不进 Blade/PHP(铁律#1)

media_assets

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
disk varchar(20) 否 public Laravel 存储磁盘名
path varchar(255) 否 — 磁盘内相对路径
url varchar(255) 否 — 站点引用地址(主机相对,如 /storage/media/...)
filename varchar(255) 否 — 上传时的原始文件名
alt varchar(300) 是 — 图片描述:用作 利于图片 SEO,并供 AI 自动配图识别图片内容
mime_type varchar(100) 否 — —
size bigint unsigned 否 — 文件大小(字节)
category varchar(20) 否 general 用途分类:logo/product/article/case/general
meta json 是 — 宽高等元数据
created_at timestamp 是 — —
updated_at timestamp 是 — —
thumb_path varchar(500) 是 — 缩略图落盘路径(上传时按站点图片设置生成;null=无缩略图)
sha256 varchar(64) 是 — 内容 sha256,存量懒回填

collections

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
type varchar(10) 否 — 成员类型:product / article / case
name varchar(60) 否 — 集合名(如「首页推荐」)
slug varchar(60) 否 — 绑定引用键(Liquid/区块参数用),站内唯一
sort int unsigned 否 0 —
created_at timestamp 是 — —
updated_at timestamp 是 — —

collection_items

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
collection_id bigint unsigned 否 — —
item_id bigint unsigned 否 — 成员 id(按集合 type 指向对应表;成员被删后由查询自然过滤)
sort int unsigned 否 0 —

banners

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
slot varchar(40) 否 — 广告位标识(模板用 $banners['slot'] 取图:home-hero / sidebar 等自定义)
title varchar(120) 是 — 标题/说明文字(模板可选渲染)
image varchar(500) 否 — 图片地址(本站素材)
link_url varchar(500) 是 — 点击跳转地址(可空=纯展示)
sort int unsigned 否 0 同一广告位内的顺序
enabled tinyint(1) 否 1 停用后前台不渲染
created_at timestamp 是 — —
updated_at timestamp 是 — —

friend_links

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
name varchar(60) 否 — 链接名称(对方站点名)
url varchar(300) 否 — 链接地址
logo varchar(500) 是 — 对方 Logo(本站素材地址,可空=纯文字链接)
sort int unsigned 否 0 排序权重,小的在前
enabled tinyint(1) 否 1 停用后前台不渲染,数据保留
created_at timestamp 是 — —
updated_at timestamp 是 — —

downloads

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
title varchar(200) 否 — 资料名称
file_url varchar(500) 否 — 文件地址(本站素材库文档)
file_size bigint unsigned 是 — 文件字节数(列表展示用)
file_ext varchar(10) 是 — 扩展名(pdf/docx…,列表图标用)
summary varchar(500) 是 — 资料简介
category varchar(60) 是 — 分组名(前台按组展示,可空)
download_count int unsigned 否 0 下载次数(经 /dl/{id} 计数)
sort int unsigned 否 0 —
status varchar(10) 否 active active 展示 / hidden 隐藏
created_at timestamp 是 — —
updated_at timestamp 是 — —

job_positions

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
title varchar(120) 否 — 职位名称
department varchar(60) 是 — 部门
location varchar(60) 是 — 工作地点
headcount varchar(20) 是 — 招聘人数(自由文本:3 人 / 若干)
description text 是 — 职位描述(岗位职责/任职要求)
description_format varchar(10) 否 markdown 描述格式:markdown / html
apply_url varchar(500) 是 — 投递方式链接(表单页/邮箱 mailto,可空=页面显示公司联系方式)
sort int unsigned 否 0 —
status varchar(10) 否 open open 招聘中 / closed 已结束(结束不渲染)
created_at timestamp 是 — —
updated_at timestamp 是 — —

templates

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
slug varchar(255) 否 — 模板目录名,对应 templates/{slug}/
name varchar(255) 否 — 模板显示名称
thumbnail varchar(255) 是 — 后台上传的模板缩略图地址
category varchar(50) 否 general 行业分类
version int unsigned 否 1 模板版本号,站点锁定具体版本
config json 否 — 模板能力声明:主题约束、模块版式、参数 schema(协议模板层校验依据)
status varchar(20) 否 active active / disabled
created_at timestamp 是 — —
updated_at timestamp 是 — —
status_locked tinyint(1) 否 0 管理员手动上/下架后锁定,sync 不覆盖 status

company_profiles

字段 类型 可空 默认 说明
id bigint unsigned 否 — —
tenant_id bigint unsigned 否 — —
site_id bigint unsigned 否 — —
name varchar(255) 是 — 公司全称
short_name varchar(100) 是 — 公司简称
intro text 是 — 公司简介(Markdown)
founded_year smallint unsigned 是 — 成立年份
logo_url varchar(255) 是 — Logo 引用地址(来自素材库)
phone varchar(50) 是 — 联系电话
email varchar(255) 是 — 联系邮箱
address varchar(500) 是 — 公司地址
created_at timestamp 是 — —
updated_at timestamp 是 — —
show_header_name tinyint(1) 否 1 页头 Logo 旁是否显示公司名(Logo 图自带名称时可关闭)