跳转至

DarkEye 数据库 Schema

采用sqlite,主要是零配置。

设计的ERD图片见excalidraw,整个数据库的架构就是那样子,还是非常的完善的,但是有很多的东西信息非常的难获取

使用SQLite来存储,文本使用utf8来处理 从excel导出的时候要导utf8 SQLite要设置utf8 因为涉及到日文的问题

状态分类 - 主动(身心主动) - 半推半就(身心平常,但是也能接受做爱) - 反抗(身心都强烈抗拒) - 沉伦(心理上的放纵,但是身体要做爱,背德感,表现出享受与放纵,没有羞耻或抵抗,前置条件是被动), - 羞耻(心理上的抗拒 + 快感中混杂着道德负担或社交焦虑,动作含蓄遮掩身体、夹腿、蜷缩,被强制,脸红,前置条件是被动) - 受虐快感(高强度,受虐但是渴望做爱,前置条件是被动) - 冷漠(做爱无表情无状态,前置条件是被动)

基于 resources/sql/initTABLE.sql(公共库)与 resources/sql/initPrivateTable.sql(私有库)整理。


一、概览

数据库 文件 用途
public.db initTABLE.sql 作品、女优、男优、标签、制作商等公共元数据
private.db initPrivateTable.sql 收藏、撸管、做爱、晨勃等个人行为数据

注意tag 表依赖 tag_typeprefix_maker_relation 依赖 makertag_typemaker 可能在种子数据或迁移脚本中创建。


二、公共库 (public.db)

2.1 work — 作品表

列名 类型 约束 说明
work_id INTEGER PK, AUTOINCREMENT 主键
serial_number TEXT NOT NULL, UNIQUE 番号
director TEXT 导演
story TEXT 自定义剧情
release_date TEXT 发布时间
image_url TEXT 封面图片路径
video_url TEXT 视频路径
cn_title TEXT 中文标题
jp_title TEXT 日文标题
cn_story TEXT 中文剧情
jp_story TEXT 日文剧情
create_time TEXT DEFAULT now 创建时间
update_time TEXT DEFAULT now 更新时间
is_deleted INTEGER DEFAULT 0 软删除标记
javtxt_id INTEGER JavTxt 关联 ID

Trigger: update_work_timestamp — 更新时自动刷新 update_time


2.2 actress — 女优表

列名 类型 约束 说明
actress_id INTEGER PK, AUTOINCREMENT 主键
birthday TEXT 出生日期
height INTEGER 身高 (cm)
bust INTEGER 胸围
waist INTEGER 腰围
hip INTEGER 臀围
cup TEXT 罩杯
debut_date TEXT 出道日期
need_update INTEGER DEFAULT 1 1=需爬虫更新, 0=不需
create_time TEXT DEFAULT now 创建时间
update_time TEXT DEFAULT now 更新时间
image_urlA TEXT 头像 A
image_urlB TEXT 头像 B
minnano_url TEXT Minnano 链接

Trigger: update_actress_timestamp — 更新时自动刷新 update_time


2.3 actress_name — 女优姓名表

支持多艺名与名字变更链。

列名 类型 约束 说明
actress_name_id INTEGER PK, AUTOINCREMENT 主键
actress_id INTEGER FK → actress 女优 ID
name_type INTEGER 1=主名, 0=非主名
cn TEXT 中文名
jp TEXT 日文名
en TEXT 英文名
kana TEXT 假名
redirect_actress_name_id INTEGER FK → actress_name 名字变更链,NULL 表示最新名

2.4 work_actress_relation — 作品-女优关系表

列名 类型 约束 说明
work_actress_relation_id INTEGER PK, AUTOINCREMENT 主键
work_id INTEGER FK → work, NOT NULL 作品 ID
actress_id INTEGER FK → actress, NOT NULL 女优 ID
job TEXT 角色/职业(如职员、上司)
age TEXT 年龄段(如年轻)
married TEXT 人设(如人妻、女友)
state TEXT 状态(如主动)

2.5 manufacturer — 制作商表

列名 类型 约束 说明
manufacturer_id INTEGER PK, AUTOINCREMENT 主键
cn_name TEXT 中文名
jp_name TEXT 日文名
aliases TEXT 别名
detail TEXT 其他信息
logo_url TEXT Logo 路径

注:迁移脚本中会迁移为 maker 表,prefix_maker_relation 引用 maker


2.6 label — 厂牌表

列名 类型 约束 说明
label_id INTEGER PK, AUTOINCREMENT 主键
cn_name TEXT 中文名
jp_name TEXT 日文名
detail TEXT 其他信息

2.7 tag — 标签表

列名 类型 约束 说明
tag_id INTEGER PK, AUTOINCREMENT 主键
tag_name TEXT NOT NULL, UNIQUE 标签名
tag_type_id INTEGER FK → tag_type 标签类型 ID
color TEXT DEFAULT '#cccccc' 颜色(hex)
redirect_tag_id INTEGER FK → tag 重定向目标 tag_id
detail TEXT 说明
group_id INTEGER 互斥组标记

2.8 work_tag_relation — 作品-标签关系表

列名 类型 约束 说明
work_tag_id INTEGER PK, AUTOINCREMENT 主键
work_id INTEGER FK → work 作品 ID
tag_id INTEGER FK → tag 标签 ID

UNIQUE(work_id, tag_id) — 防止重复关联


2.9 actor — 男优表

列名 类型 约束 说明
actor_id INTEGER PK, AUTOINCREMENT 主键
birthday TEXT 出生年份
height INTEGER 身高
handsome INTEGER 颜值 0/1/2
fat INTEGER 胖瘦 0/1/2
need_update INTEGER DEFAULT 1 是否需更新
create_time TEXT DEFAULT now 创建时间

2.10 actor_name — 男优姓名表

列名 类型 约束 说明
actor_name_id INTEGER PK, AUTOINCREMENT 主键
actor_id INTEGER FK → actor 男优 ID
name_type INTEGER 1=主名, 0=非主名
cn TEXT 中文名
jp TEXT 日文名
en TEXT 英文名
kana TEXT 假名

2.11 work_actor_relation — 作品-男优关系表

列名 类型 约束 说明
work_actor_relation_id INTEGER PK, AUTOINCREMENT 主键
work_id INTEGER FK → work, NOT NULL 作品 ID
actor_id INTEGER FK → actor, NOT NULL 男优 ID

2.12 prefix_maker_relation — 番号前缀-片商关系表

通过番号前缀映射到制作商。

列名 类型 约束 说明
prefix_maker_relation_id INTEGER PK, AUTOINCREMENT 主键
prefix TEXT 番号前缀(如 SSIS)
maker_id INTEGER FK → maker 片商 ID

三、私有库 (private.db)

3.1 db_version — 数据库版本表

列名 类型 约束 说明
id INTEGER PK, AUTOINCREMENT 主键
version TEXT NOT NULL 版本号
applied_at DATETIME DEFAULT now 应用时间
description TEXT 说明

3.2 favorite_actress — 收藏女优表

列名 类型 约束 说明
favorite_actress_id INTEGER PK, AUTOINCREMENT 主键
actress_id INTEGER UNIQUE, NOT NULL 公共库 actress_id
jp_name TEXT NOT NULL 日文名备份
added_time TEXT NOT NULL, DEFAULT now 收藏时间

3.3 favorite_work — 收藏作品表

列名 类型 约束 说明
favorite_work_id INTEGER PK, AUTOINCREMENT 主键
work_id INTEGER UNIQUE, NOT NULL 公共库 work_id
serial_number TEXT UNIQUE, NOT NULL 番号备份
added_time TEXT NOT NULL, DEFAULT now 收藏时间

3.4 love_making — 做爱记录表

列名 类型 约束 说明
love_making_id INTEGER PK, AUTOINCREMENT 主键
event_time TEXT 时间(精确到小时)
rating INTEGER NOT NULL, CHECK(1-5) 满意度 1–5
comment TEXT 评价
create_time TEXT DEFAULT now 创建时间
update_time TEXT DEFAULT now 更新时间

Trigger: update_love_making_timestamp — 更新时自动刷新 update_time


3.5 masturbation — 撸管记录表

列名 类型 约束 说明
masturbation_id INTEGER PK, AUTOINCREMENT 主键
work_id INTEGER 关联作品 ID
serial_number TEXT 番号冗余
start_time TEXT 起飞时间(精确到分钟)
tool_name TEXT 工具(手/飞机杯等)
rating INTEGER NOT NULL, CHECK(1-5) 满意度 1–5
comment TEXT 评论
create_time TEXT DEFAULT now 创建时间
update_time TEXT DEFAULT now 更新时间

3.6 sexual_arousal — 晨勃记录表

列名 类型 约束 说明
sexual_arousal_id INTEGER PK, AUTOINCREMENT 主键
arousal_time TEXT 晨勃时间(精确到小时)
comment TEXT 评论(可含梦境)
create_time TEXT DEFAULT now 创建时间
update_time TEXT DEFAULT now 更新时间

Trigger: update_sexual_arousal_timestamp — 更新时自动刷新 update_time


四、依赖表(未在上述 init 脚本中定义)

以下表被引用,但未在 initTABLE.sql / initPrivateTable.sql 中定义,可能来自种子数据或迁移脚本:

tag_type — 标签类型表

列名 类型 说明
tag_type_id INTEGER 主键
tag_type_name TEXT 类型名称
tag_order INTEGER 排序

maker — 制作商表(由 manufacturer 迁移而来)

列名 类型 说明
maker_id INTEGER 主键
cn_name TEXT 中文名
jp_name TEXT 日文名
aliases TEXT 别名
detail TEXT 说明
logo_url TEXT Logo 路径

五、实体关系简图

┌─────────┐       ┌──────────────────────┐       ┌─────────┐
│  work   │───────│ work_actress_relation│───────│ actress │
└────┬────┘       └──────────────────────┘       └────┬────┘
     │                                                 │
     │            ┌──────────────────────┐            │
     └────────────│ work_tag_relation    │            │
     │            └──────────┬───────────┘            │
     │                       │                        │
     │            ┌──────────▼───────────┐            │
     │            │        tag           │            │
     │            └──────────┬───────────┘            │
     │                       │                        │
     │            ┌──────────▼───────────┐     ┌──────▼──────┐
     │            │     tag_type         │     │ actress_name│
     │            └──────────────────────┘     └─────────────┘
     │
     │            ┌──────────────────────┐       ┌─────────┐
     └────────────│ work_actor_relation  │───────│  actor  │
                  └──────────────────────┘       └────┬────┘
                                                      │
                                               ┌──────▼──────┐
     ┌──────────────────────┐                  │ actor_name │
     │ prefix_maker_relation│──────────────────└─────────────┘
     └──────────┬───────────┘
                │
     ┌──────────▼───────────┐
     │       maker          │
     └──────────────────────┘

【私有库 - 引用公共库 ID】
┌─────────────────┐     actress_id     ┌─────────┐
│ favorite_actress│───────────────────→│ actress │
└─────────────────┘                    └─────────┘

┌─────────────────┐     work_id        ┌─────┐
│ favorite_work   │───────────────────→│work │
└─────────────────┘                    └─────┘

┌──────────────┐    work_id (软引用)
│ masturbation │ ────────────────────→ work
└──────────────┘

六、跨库查询说明

私有库通过 ATTACH DATABASE 挂载为 priv,公共库为主库。查询示例:

-- 跨库:撸管记录关联作品
SELECT m.*, w.serial_number
FROM priv.masturbation m
LEFT JOIN work w ON m.work_id = w.work_id;