第 86 章 资产数据库与项目目录:让文件、事实和关系同时可找

第十六部 工程实施与制作基础设施

第 86 章 资产数据库与项目目录:让文件、事实和关系同时可找#

本章目录
86.1 资产身份、核心表与关系图86.2 生命周期、并发与检索86.3 恢复能力与旧资产迁移86.4 数据库验收与必答查询

共享盘中的“最终版_真的最终版”无法支撑整季。资产系统需要同时解决三个问题:二进制文件放在哪里,关于文件的事实存在哪里,资产之间的依赖怎样查询。目录结构服务人,数据库服务状态和关系,二者不能互相替代。

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/

目录只是视图。真正路径可由对象存储键和数据库生成,使用者不应通过手动移动文件改变生命周期。

核心表。

最小关系模型包括 entitiesassetsasset_versionsrelationshipsapprovalsrights_profilestaskseventsrelease_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 生命周期、并发与检索#

生命周期与不可变性。

draftcandidateapprovedlockedretiredquarantined 各有允许动作。批准版本只读,修改产生新版本。retired 可追溯但不供新任务选择;quarantined 因安全、权利或质量问题被隔离。

删除分逻辑删除、权利删除和物理清除。审计记录可能需要保留,个人数据又可能依法删除,系统应将二进制、可识别元数据和不可逆审计证明分层处理。

并发与租约。

Episode Pack、字幕和剪辑项目容易多人编辑。使用版本号、短时租约和合并策略。二进制工程文件不做自动文本合并;冲突时保留两个分支并由负责人决定。任何覆盖都记录前后校验和。

锁不是让所有人等待的长期占有。租约过期后可接管,原编辑者提交时必须发现版本已变化,不能覆盖新工作。

搜索与物化视图。

搜索支持实体、集数、镜头职责、状态、权利、人物、地点、错误标签和来源。常用视图包括“本集所有 blocker”“使用退役资产的候选”“权利 30 天内到期”“等待人工审批超过 SLO”“可用于投放但未派生素材的镜头”。

语义搜索可帮助发现相似动作和失败经验,但结果只作为候选。生命周期、权利和事实过滤仍用结构化字段。

86.3 恢复能力与旧资产迁移#

备份、校验与恢复。

数据库定期快照,事件日志异地复制,对象存储开启版本和校验。备份成功不等于可恢复,季度演练从空环境恢复一个集:重建实体、关系、审批、权利与发布包,并抽样验证媒体校验和。

大型媒体可分层存储,代理文件与母版有不同恢复优先级。发布母版、授权证据和项目状态优先于可重新生成的低清预演。

迁移旧共享盘。

先只读扫描和哈希去重,再建立映射表,不立即重命名全部文件。人工确认关键资产、权利和版本;无法确认来源的进入隔离。旧路径保留重定向或索引,待新系统稳定后逐批冻结。

迁移报告必须列未识别文件、重复内容、缺失权利、命名冲突和孤儿引用。把所有文件搬进新目录不等于迁移完成。

86.4 数据库验收与必答查询#

故障树。

文件找得到但不敢用:权利与审批缺失;数据库有记录但媒体打不开:没有校验与备份;换身份后漏重做镜头:依赖只存在人脑;多人修改互相覆盖:没有版本和租约;搜索结果很多但无用:把自然语言标签当核心 Schema。

SOP、检查表与交付物。

定义实体与 ID;设计生命周期;建立对象存储和元数据表;记录关系;强制校验和;实现审批与权利;创建常用视图;制定备份;演练恢复;分批迁移旧资产。

  • 文件移动不直接改变批准状态。
  • 锁定版本不可覆盖。
  • 每个发布资产可反查来源与权利。
  • 退役与隔离资产不会被新任务选中。
  • 备份经过实际恢复验证。

练习:为三集试播建立最小资产库,交付 database_schema.sqlobject_key_policy.mdlifecycle_rules.yamldependency_queries.sqlmigration_report.csvrestore_drill.md

四个必答查询。

资产库上线前,非开发人员必须能回答四个问题:某成片镜头来自哪个 Take 和输入;某角色身份升级会影响哪些未发布镜头;某音乐授权到期出现在哪些平台版本;某个被隔离文件是否仍被任何任务引用。若只能请工程师临时写脚本,系统还没有形成生产界面。

为《逆光收购》故意退役林夏身份 v02,并在一个缓存 Pack、一个备用 Take 和一条投放素材中留下引用。影响查询应完整找出三处,分别路由重编译、隔离和素材替换。修复后再次查询必须为零,同时保留历史引用证据。这样的闭环比“数据库备份成功”更能证明资产治理可用。

验收还要抽取一个发布镜头,由新成员在五分钟内找到其输入、批准、权利和成本。找不到任何一项,就记录信息链断点并阻止资产库宣布上线。