第十六部 工程实施与制作基础设施
第 86 章 资产数据库与项目目录:让文件、事实和关系同时可找#
共享盘中的“最终版_真的最终版”无法支撑整季。资产系统需要同时解决三个问题:二进制文件放在哪里,关于文件的事实存在哪里,资产之间的依赖怎样查询。目录结构服务人,数据库服务状态和关系,二者不能互相替代。
86.1 资产身份、核心表与关系图#
稳定 ID 与显示名称。
角色、地点、道具、镜头、Take、声音、图形和发布包都有稳定 ID。中文名称可改,ID 不改。文件名包含项目、实体、用途、版本和可选状态,不把审批状态写成模糊词。
projects/backlight_acquisition/
canonical/
story/
identities/
locations/
rights/
episodes/ep001/
pack/
shots/sh015/
inputs/
candidates/
approved/
audio/
edit/
qc/
releases/ep001/rc004/
目录只是视图。真正路径可由对象存储键和数据库生成,使用者不应通过手动移动文件改变生命周期。
核心表。
最小关系模型包括 entities、assets、asset_versions、relationships、approvals、rights_profiles、tasks、events 和 release_manifests。大文件放对象存储,数据库保存 URI、校验和、尺寸、媒体属性和状态。
asset_version:
asset_id: asset_char_lin_front
version: 3
blob_uri: object://canonical/characters/lin/front/v03.png
checksum: sha256:bbb
lifecycle: locked
entity_id: char_lin_xia
source_task: img_char_lin_v03
rights_profile: rights_synth_character_01
supersedes: asset_char_lin_front@2
关系图。
关系至少表达镜头使用身份、Take 派生自输入、剪辑引用 Take、发布包包含剪辑、资产受权利约束、新版替代旧版。关系带生效时间和来源,不仅是两个 ID。
更换林夏主身份时,查询所有未发布且依赖旧版本的镜头;音乐授权到期时,查所有包含该 Cue 的平台包;发现错误合同金额时,查图形资产及派生素材。这些是资产库的核心能力,不是缩略图浏览。
86.2 生命周期、并发与检索#
生命周期与不可变性。
draft、candidate、approved、locked、retired、quarantined 各有允许动作。批准版本只读,修改产生新版本。retired 可追溯但不供新任务选择;quarantined 因安全、权利或质量问题被隔离。
删除分逻辑删除、权利删除和物理清除。审计记录可能需要保留,个人数据又可能依法删除,系统应将二进制、可识别元数据和不可逆审计证明分层处理。
并发与租约。
Episode Pack、字幕和剪辑项目容易多人编辑。使用版本号、短时租约和合并策略。二进制工程文件不做自动文本合并;冲突时保留两个分支并由负责人决定。任何覆盖都记录前后校验和。
锁不是让所有人等待的长期占有。租约过期后可接管,原编辑者提交时必须发现版本已变化,不能覆盖新工作。
搜索与物化视图。
搜索支持实体、集数、镜头职责、状态、权利、人物、地点、错误标签和来源。常用视图包括“本集所有 blocker”“使用退役资产的候选”“权利 30 天内到期”“等待人工审批超过 SLO”“可用于投放但未派生素材的镜头”。
语义搜索可帮助发现相似动作和失败经验,但结果只作为候选。生命周期、权利和事实过滤仍用结构化字段。
86.3 恢复能力与旧资产迁移#
备份、校验与恢复。
数据库定期快照,事件日志异地复制,对象存储开启版本和校验。备份成功不等于可恢复,季度演练从空环境恢复一个集:重建实体、关系、审批、权利与发布包,并抽样验证媒体校验和。
大型媒体可分层存储,代理文件与母版有不同恢复优先级。发布母版、授权证据和项目状态优先于可重新生成的低清预演。
迁移旧共享盘。
先只读扫描和哈希去重,再建立映射表,不立即重命名全部文件。人工确认关键资产、权利和版本;无法确认来源的进入隔离。旧路径保留重定向或索引,待新系统稳定后逐批冻结。
迁移报告必须列未识别文件、重复内容、缺失权利、命名冲突和孤儿引用。把所有文件搬进新目录不等于迁移完成。
86.4 数据库验收与必答查询#
故障树。
文件找得到但不敢用:权利与审批缺失;数据库有记录但媒体打不开:没有校验与备份;换身份后漏重做镜头:依赖只存在人脑;多人修改互相覆盖:没有版本和租约;搜索结果很多但无用:把自然语言标签当核心 Schema。
SOP、检查表与交付物。
定义实体与 ID;设计生命周期;建立对象存储和元数据表;记录关系;强制校验和;实现审批与权利;创建常用视图;制定备份;演练恢复;分批迁移旧资产。
- 文件移动不直接改变批准状态。
- 锁定版本不可覆盖。
- 每个发布资产可反查来源与权利。
- 退役与隔离资产不会被新任务选中。
- 备份经过实际恢复验证。
练习:为三集试播建立最小资产库,交付 database_schema.sql、object_key_policy.md、lifecycle_rules.yaml、dependency_queries.sql、migration_report.csv、restore_drill.md。
四个必答查询。
资产库上线前,非开发人员必须能回答四个问题:某成片镜头来自哪个 Take 和输入;某角色身份升级会影响哪些未发布镜头;某音乐授权到期出现在哪些平台版本;某个被隔离文件是否仍被任何任务引用。若只能请工程师临时写脚本,系统还没有形成生产界面。
为《逆光收购》故意退役林夏身份 v02,并在一个缓存 Pack、一个备用 Take 和一条投放素材中留下引用。影响查询应完整找出三处,分别路由重编译、隔离和素材替换。修复后再次查询必须为零,同时保留历史引用证据。这样的闭环比“数据库备份成功”更能证明资产治理可用。
验收还要抽取一个发布镜头,由新成员在五分钟内找到其输入、批准、权利和成本。找不到任何一项,就记录信息链断点并阻止资产库宣布上线。