Java 短剧系统数据库设计与表结构详解

发布时间:2026/7/14 17:46:18

Java 短剧系统数据库设计与表结构详解 在Java短剧系统中数据库设计与表结构是支撑整个系统业务逻辑的核心。以下是一个针对短剧系统的详细数据库设计方案涵盖用户、短剧、剧集、评论、观看历史等核心模块并考虑了性能优化和扩展性。一、数据库设计原则业务导向根据短剧系统的核心业务如用户管理、短剧管理、播放记录、评论互动等设计表结构确保每个表都有明确的业务含义。数据完整性通过主键、外键、唯一约束等保证数据的完整性和一致性。性能优化合理设计索引、分表分库策略提高查询效率。扩展性预留字段和表结构支持未来业务扩展。二、核心表结构设计1. 用户表user存储用户基本信息包括用户名、密码、手机号、邮箱、角色等。sqlCREATE TABLE user ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 用户ID, username VARCHAR(50) NOT NULL COMMENT 用户名, password VARCHAR(100) NOT NULL COMMENT 加密密码, phone VARCHAR(20) UNIQUE COMMENT 手机号, email VARCHAR(100) UNIQUE COMMENT 邮箱, role TINYINT DEFAULT 0 COMMENT 角色0普通用户 1创作者 2管理员, avatar VARCHAR(255) COMMENT 头像URL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户表;2. 短剧表drama存储短剧的基本信息包括标题、封面、简介、总集数、分类、标签等。sqlCREATE TABLE drama ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 短剧ID, title VARCHAR(100) NOT NULL COMMENT 短剧标题, cover_url VARCHAR(255) COMMENT 封面图URL, description TEXT COMMENT 简介, total_episodes INT DEFAULT 0 COMMENT 总集数, category_id INT COMMENT 分类ID关联分类表, tags VARCHAR(200) COMMENT 标签逗号分隔, is_vip TINYINT DEFAULT 0 COMMENT 是否VIP剧集0否 1是, status TINYINT DEFAULT 1 COMMENT 状态1上架 0下架, view_count INT DEFAULT 0 COMMENT 播放量, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT短剧表;3. 剧集表drama_episode存储短剧的每一集信息包括剧集序号、标题、视频地址、时长、是否免费等。sqlCREATE TABLE drama_episode ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 剧集ID, drama_id BIGINT NOT NULL COMMENT 短剧ID关联短剧表, episode_no INT NOT NULL COMMENT 剧集序号, title VARCHAR(100) COMMENT 本集标题, video_url VARCHAR(255) NOT NULL COMMENT 视频地址, duration INT COMMENT 时长秒, is_free TINYINT DEFAULT 1 COMMENT 是否免费0否 1是, sort_order INT DEFAULT 0 COMMENT 排序字段, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, INDEX idx_drama_id (drama_id), INDEX idx_sort (drama_id, sort_order) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT剧集表;4. 评论表comment存储用户对短剧或剧集的评论信息支持多级评论回复。sqlCREATE TABLE comment ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 评论ID, user_id BIGINT NOT NULL COMMENT 用户ID关联用户表, drama_id BIGINT COMMENT 短剧ID关联短剧表可为空表示对剧集评论, episode_id BIGINT COMMENT 剧集ID关联剧集表可为空表示对短剧评论, content TEXT NOT NULL COMMENT 评论内容, parent_id BIGINT DEFAULT NULL COMMENT 父评论ID回复时使用, like_count INT DEFAULT 0 COMMENT 点赞数, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, INDEX idx_user_id (user_id), INDEX idx_drama_id (drama_id), INDEX idx_episode_id (episode_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT评论表;5. 观看历史表watch_history记录用户的观看历史包括观看进度、观看时长等。sqlCREATE TABLE watch_history ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 记录ID, user_id BIGINT NOT NULL COMMENT 用户ID关联用户表, drama_id BIGINT NOT NULL COMMENT 短剧ID关联短剧表, episode_id BIGINT NOT NULL COMMENT 剧集ID关联剧集表, progress INT DEFAULT 0 COMMENT 观看进度秒, watch_duration INT DEFAULT 0 COMMENT 本次观看时长秒, watch_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 观看时间, INDEX idx_user_time (user_id, watch_time), INDEX idx_drama (drama_id), INDEX idx_episode (episode_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT观看历史表;6. 分类表category存储短剧的分类信息如都市、古装、悬疑等。sqlCREATE TABLE category ( id INT PRIMARY KEY AUTO_INCREMENT COMMENT 分类ID, name VARCHAR(50) NOT NULL COMMENT 分类名称, sort_order INT DEFAULT 0 COMMENT 排序字段, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT分类表;三、性能优化策略索引优化为常用查询字段如user_id、drama_id、episode_id添加索引。避免过度索引每个表的索引数控制在5-8个。分表分库对于数据量大的表如watch_history可按用户ID哈希分库按时间分表。使用ShardingSphere等中间件实现分库分表。缓存策略使用Redis缓存热门短剧、用户信息、评论等热点数据。实现缓存穿透防护对空值结果也缓存设置短TTL如1分钟。异步处理使用消息队列如RabbitMQ、Kafka处理异步任务如视频转码、观看记录统计等。避免阻塞主流程提高系统响应速度。四、扩展性设计预留字段在核心表中预留ext_fields字段JSON类型存储未来可能扩展的字段。模块化设计将系统拆分为多个微服务如用户服务、短剧服务、播放服务等每个服务独立部署、扩展。多端适配前端适配APP、小程序、H5等多端通过统一的API接口与后端交互。

相关新闻