Files
ai/docs/system_a/05_数据库表结构设计.md
T
2026-06-15 17:45:28 +08:00

6.8 KiB
Executable File
Raw Blame History

05_数据库表结构设计

1. 核心表清单

users
projects
novel_sources
novel_chapters
copyright_records
story_bibles
world_bibles
characters
character_images
character_memories
episodes
episode_scripts
storyboard_shots
shot_images
plot_memories
plot_threads
continuity_checks
assets
render_tasks
provider_configs
provider_logs
orders
quota_accounts
quota_logs
revision_requests
content_reviews
case_showcases
analytics_events
system_configs
operation_logs

2. projects

id BIGINT PRIMARY KEY
user_id BIGINT NOT NULL
title VARCHAR(255)
input_mode VARCHAR(50) -- ai_original/upload/admin_import
genre VARCHAR(100)
style_code VARCHAR(100)
output_type VARCHAR(50)
target_episode_count INT
episode_duration INT
status VARCHAR(80)
copyright_status VARCHAR(80)
payment_status VARCHAR(80)
quality_level VARCHAR(50)
is_long_series BOOLEAN DEFAULT FALSE
created_at DATETIME
updated_at DATETIME
completed_at DATETIME

索引:

user_id,status
genre,status
created_at

3. novel_sources

id BIGINT PRIMARY KEY
project_id BIGINT NOT NULL
source_type VARCHAR(50)
title VARCHAR(255)
author_name VARCHAR(100)
raw_asset_id BIGINT
raw_text LONGTEXT
clean_text LONGTEXT
word_count INT
chapter_count INT
parse_status VARCHAR(50)
parse_report JSON
created_at DATETIME

4. novel_chapters

id BIGINT PRIMARY KEY
project_id BIGINT NOT NULL
novel_source_id BIGINT
chapter_no INT
title VARCHAR(255)
content LONGTEXT
summary TEXT
visual_summary TEXT
word_count INT
status VARCHAR(50)
created_at DATETIME

visual_summary 用于记录该章节可视化场景摘要。


id BIGINT PRIMARY KEY
project_id BIGINT
user_id BIGINT
authorization_type VARCHAR(50)
statement_text TEXT
ip VARCHAR(80)
user_agent TEXT
confirmed_at DATETIME

authorization_type

author_self
licensed
public_domain
internal_test
ai_original

6. story_bibles

id BIGINT PRIMARY KEY
project_id BIGINT
title VARCHAR(255)
logline TEXT
main_plot TEXT
core_conflict TEXT
selling_points TEXT
tone VARCHAR(100)
world_summary TEXT
ending_direction TEXT
taboo_rules TEXT
version INT
status VARCHAR(50)
created_at DATETIME
updated_at DATETIME

7. world_bibles

id BIGINT PRIMARY KEY
project_id BIGINT
world_type VARCHAR(100)
setting_text TEXT
rules_text TEXT
power_system TEXT
social_structure TEXT
time_period TEXT
visual_rules TEXT
forbidden_rules TEXT
status VARCHAR(50)
created_at DATETIME

8. characters

id BIGINT PRIMARY KEY
project_id BIGINT
name VARCHAR(100)
role_type VARCHAR(50)
gender_label VARCHAR(50)
age_group VARCHAR(50)
identity_desc TEXT
appearance_desc TEXT
hair_desc TEXT
costume_rules TEXT
personality_desc TEXT
speech_style TEXT
relationship_desc TEXT
character_arc TEXT
negative_rules TEXT
anchor_asset_id BIGINT
importance_level INT
status VARCHAR(50)
created_at DATETIME

role_type

lead_male
lead_female
villain
supporting
extra

9. character_images

id BIGINT PRIMARY KEY
project_id BIGINT
character_id BIGINT
asset_id BIGINT
image_type VARCHAR(50)
prompt_text TEXT
negative_prompt TEXT
is_anchor BOOLEAN
quality_score DECIMAL(5,2)
status VARCHAR(50)
created_at DATETIME

image_type

front_reference
side_reference
expression
costume
anchor
episode_variant

10. character_memories

id BIGINT PRIMARY KEY
project_id BIGINT
character_id BIGINT
episode_id BIGINT
memory_type VARCHAR(50)
content TEXT
created_at DATETIME

memory_type

appearance_state
relationship_state
emotion_state
goal_state
injury_state
costume_state

11. episodes

id BIGINT PRIMARY KEY
project_id BIGINT
episode_no INT
source_chapter_ids JSON
title VARCHAR(255)
summary TEXT
opening_hook TEXT
middle_conflict TEXT
ending_hook TEXT
target_duration INT
status VARCHAR(50)
created_at DATETIME

12. episode_scripts

id BIGINT PRIMARY KEY
project_id BIGINT
episode_id BIGINT
script_text LONGTEXT
narration_text LONGTEXT
dialogue_json JSON
version INT
status VARCHAR(50)
created_at DATETIME

13. storyboard_shots

id BIGINT PRIMARY KEY
project_id BIGINT
episode_id BIGINT
shot_no INT
scene_name VARCHAR(255)
location_desc TEXT
characters_json JSON
visual_desc TEXT
action_desc TEXT
dialogue_text TEXT
narration_text TEXT
camera_motion VARCHAR(100)
effect_type VARCHAR(100)
duration DECIMAL(6,2)
prompt_text TEXT
negative_prompt TEXT
status VARCHAR(50)
created_at DATETIME

14. plot_memories

id BIGINT PRIMARY KEY
project_id BIGINT
episode_id BIGINT
chapter_id BIGINT
memory_type VARCHAR(50)
content TEXT
importance_level INT
status VARCHAR(50)
created_at DATETIME

memory_type

event
clue
foreshadowing
resolved_conflict
unresolved_conflict
relationship_change
world_rule
item_state

15. plot_threads

id BIGINT PRIMARY KEY
project_id BIGINT
thread_name VARCHAR(255)
thread_type VARCHAR(80)
description TEXT
start_episode_no INT
expected_resolve_episode_no INT
resolved_episode_no INT
status VARCHAR(50)
created_at DATETIME

thread_type

main_plot
romance
revenge
mystery
villain_plan
character_growth

16. continuity_checks

id BIGINT PRIMARY KEY
project_id BIGINT
episode_id BIGINT
check_type VARCHAR(80)
result_status VARCHAR(50)
issue_text TEXT
suggestion_text TEXT
created_at DATETIME

check_type

character_name
relationship
timeline
appearance
plot_thread
world_rule

17. assets

id BIGINT PRIMARY KEY
user_id BIGINT
project_id BIGINT
asset_type VARCHAR(50)
file_path VARCHAR(500)
file_url VARCHAR(500)
mime_type VARCHAR(100)
width INT
height INT
duration DECIMAL(10,2)
size BIGINT
hash VARCHAR(128)
visibility VARCHAR(30)
status VARCHAR(50)
created_at DATETIME

18. render_tasks

id BIGINT PRIMARY KEY
project_id BIGINT
episode_id BIGINT
shot_id BIGINT
task_type VARCHAR(80)
provider_id BIGINT
status VARCHAR(50)
input_json JSON
input_hash VARCHAR(128)
output_asset_id BIGINT
provider_request_id VARCHAR(255)
retry_count INT
max_retry INT
cost_estimate DECIMAL(12,4)
cost_actual DECIMAL(12,4)
error_code VARCHAR(100)
error_message TEXT
created_at DATETIME
started_at DATETIME
finished_at DATETIME

19. analytics_events

id BIGINT PRIMARY KEY
project_id BIGINT
episode_id BIGINT
event_type VARCHAR(80)
platform VARCHAR(80)
metric_json JSON
created_at DATETIME

用于后续记录播放量、完播率、点赞率、评论反馈等。


20. 索引建议

projects(user_id,status)
novel_chapters(project_id,chapter_no)
characters(project_id,role_type)
episodes(project_id,episode_no)
storyboard_shots(project_id,episode_id,shot_no)
plot_memories(project_id,episode_id)
plot_threads(project_id,status)
render_tasks(project_id,status)
render_tasks(task_type,status)
assets(project_id,asset_type)