You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Media Wiki数据库以支持带文件夹结构的文件集合?

解决方案:为媒体元数据数据库添加集合型实体支持

一、数据库设计方案

1. 新增集合实体表

创建media_collection表,存储游戏、软件、种子这类集合的整体信息:

  • collection_id:主键,唯一标识集合
  • name:集合名称(如游戏名、软件名)
  • type:集合类型(枚举值:game/software/torrent)
  • average_rating:整体评分(浮点型,支持用户打分后计算平均值)
  • description:集合描述
  • created_at/updated_at:时间戳

2. 新增集合-文件关联表

创建collection_file_association表,用来关联集合与下属文件,同时标记文件属性:

  • assoc_id:主键
  • collection_id:外键,关联media_collection表
  • file_id:外键,关联现有媒体文件表(若为非媒体文件,可留空或存文件唯一标识)
  • file_path:文件在集合内的完整路径(如GameFolder/Data/Video/intro.mp4)
  • is_metadata_visible:布尔值,标记是否为需展示元数据的媒体文件(true=可跳转元数据页,false=仅显示文件名)

3. 复用现有媒体文件表

无需修改现有媒体文件表,通过collection_file_association表的file_id关联,直接复用单个媒体文件的元数据记录。对于非媒体文件(如游戏配置文件),file_id可设为null,仅通过file_path记录名称和路径。

二、前端展示逻辑

1. 集合详情页渲染文件夹结构

  • 从collection_file_association表中查询当前集合的所有文件记录,按file_path拆分目录层级(如用/分割路径),递归构建目录树。
  • 渲染目录时,先展示文件夹节点,再展示下属文件节点。

2. 文件节点交互逻辑

  • 若is_metadata_visible为true:将文件名渲染为链接,指向该媒体文件的元数据页面(通过file_id跳转)。
  • 若is_metadata_visible为false:仅渲染纯文本文件名,无跳转链接。

3. 集合整体评分功能

  • 在集合详情页顶部添加评分控件(如星级评分),用户提交评分后,更新media_collection表的average_rating字段(可通过计算所有用户评分的平均值实现)。

三、扩展性说明

  • 集合类型type字段采用枚举,后续可轻松新增其他集合类型(如影视合集)。
  • file_path字段支持任意层级的目录结构,能覆盖复杂的游戏/软件文件目录。

内容的提问来源于stack exchange,提问作者Spare-Spray6508

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 09:03:19