This repository has been archived on 2026-01-07. You can view files and clone it, but cannot push or open issues or pull requests.
Files
resources/sqlite_tools/shared_db_schema.sql
2025-07-06 19:57:53 +08:00

641 lines
25 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE IF NOT EXISTS "iafd_performers" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
gender TEXT,
birthday TEXT,
astrology TEXT,
birthplace TEXT,
years_active TEXT,
ethnicity TEXT,
nationality TEXT,
hair_colors TEXT,
eye_color TEXT,
height_str TEXT,
weight_str TEXT,
measurements TEXT,
tattoos TEXT,
piercings TEXT,
fake_tits TEXT,
href TEXT UNIQUE,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
weight INTEGER,
height INTEGER,
rating INTEGER,
movies_cnt INTEGER,
vixen_cnt INTEGER,
blacked_cnt INTEGER,
tushy_cnt INTEGER,
x_art_cnt INTEGER,
is_full_data INTEGER DEFAULT (0) NOT NULL,
birth_year INTEGER DEFAULT (0) NOT NULL,
from_astro_list INTEGER DEFAULT (0) NOT NULL,
from_birth_list INTEGER DEFAULT (0) NOT NULL,
from_ethnic_list INTEGER DEFAULT (0) NOT NULL,
from_movie_list INTEGER DEFAULT (0) NOT NULL
);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE IF NOT EXISTS "iafd_performer_aliases" (
`performer_id` integer NOT NULL,
`alias` varchar(255) NOT NULL,
foreign key(`performer_id`) references "iafd_performers"(`id`) on delete CASCADE,
PRIMARY KEY(`performer_id`, `alias`)
);
CREATE TABLE IF NOT EXISTS "iafd_movies_appers_in" (
`movie_id` integer,
`appears_in_id` integer,
`gradation` integer,
`notes` varchar(255),
foreign key(`movie_id`) references "iafd_movies"(`id`) on delete CASCADE,
foreign key(`appears_in_id`) references "iafd_movies"(`id`) on delete CASCADE,
PRIMARY KEY (`movie_id`, `appears_in_id`)
);
CREATE TABLE IF NOT EXISTS "iafd_movies" (
`id` integer not null primary key autoincrement,
`title` varchar(255),
`minutes` varchar(255),
`distributor_id` integer,
`studio_id` integer,
`release_date` varchar(255),
`added_to_IAFD_date` varchar(255),
`all_girl` varchar(255),
`all_male` varchar(255),
`compilation` varchar(255),
`webscene` varchar(255),
`director_id` integer,
`href` varchar(255) UNIQUE,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
is_full_data INTEGER DEFAULT (0) NOT NULL,
release_year INTEGER DEFAULT (0) NOT NULL,
from_performer_list INTEGER DEFAULT (0) NOT NULL,
from_dist_list INTEGER DEFAULT (0) NOT NULL,
from_stu_list INTEGER DEFAULT (0) NOT NULL,
foreign key(`studio_id`) references "iafd_studios"(`id`) on delete SET NULL,
foreign key(`distributor_id`) references "iafd_distributors"(`id`) on delete SET NULL
);
CREATE TABLE IF NOT EXISTS "iafd_performers_movies" (
`performer_id` integer,
`movie_id` integer,
`role` varchar(255),
`notes` varchar(255),
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
foreign key(`performer_id`) references "iafd_performers"(`id`) on delete CASCADE,
foreign key(`movie_id`) references "iafd_movies"(`id`) on delete CASCADE,
PRIMARY KEY (`movie_id`, `performer_id`)
);
CREATE TABLE IF NOT EXISTS "iafd_studios" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`parent_id` INTEGER DEFAULT NULL CHECK (`id` IS NOT `parent_id`) REFERENCES "iafd_studios"(`id`) ON DELETE SET NULL,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
`details` TEXT
);
CREATE TABLE IF NOT EXISTS "iafd_distributors" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`parent_id` INTEGER DEFAULT NULL CHECK (`id` IS NOT `parent_id`) REFERENCES "iafd_distributors"(`id`) ON DELETE SET NULL,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
`details` TEXT
);
CREATE TABLE IF NOT EXISTS "iafd_performer_urls" (
`performer_id` integer NOT NULL,
`position` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
foreign key(`performer_id`) references "iafd_performers"(`id`) on delete CASCADE,
PRIMARY KEY(`performer_id`, `position`, `url`)
);
CREATE TABLE IF NOT EXISTS "iafd_task_log" (
`task_id` integer not null primary key autoincrement,
`full_data_performers` integer,
`total_performers` integer,
`full_data_movies` integer,
`total_movies` integer,
`total_distributors` integer,
`total_studios` integer,
`task_status` varchar(255),
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS "iafd_meta_ethnic" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`created_at` TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE javhd_models (
id INTEGER PRIMARY KEY AUTOINCREMENT,
rank INTEGER,
ja_name TEXT,
zh_name TEXT,
en_name TEXT,
url TEXT UNIQUE,
pic TEXT,
height TEXT,
weight TEXT,
breast_size TEXT,
breast_factor TEXT,
hair_color TEXT,
eye_color TEXT,
birth_date TEXT,
ethnicity TEXT,
birth_place TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime'))
, is_full_data INTEGER DEFAULT (0) NOT NULL);
CREATE TABLE thelordofporn_actress (
id INTEGER PRIMARY KEY AUTOINCREMENT,
pornstar TEXT,
rating REAL,
rank INTEGER,
votes INTEGER,
href TEXT UNIQUE,
career_start TEXT,
measurements TEXT,
born TEXT,
height TEXT,
weight TEXT,
date_modified TEXT,
global_rank INTEGER,
weekly_rank INTEGER,
last_month_rating REAL,
current_rating REAL,
total_votes INTEGER,
birth_date TEXT,
birth_year TEXT,
birth_place TEXT,
height_ft TEXT,
height_cm TEXT,
weight_lbs TEXT,
weight_kg TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime'))
, is_full_data INTEGER DEFAULT (0) NOT NULL);
CREATE TABLE thelordofporn_alias (
actress_id INTEGER NOT NULL,
alias TEXT NOT NULL, updated_at TEXT,
FOREIGN KEY (actress_id) REFERENCES thelordofporn_actress(id) ON DELETE CASCADE,
PRIMARY KEY(`actress_id`, `alias`)
);
CREATE TABLE javdb_actors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
href TEXT UNIQUE NOT NULL,
pic TEXT,
created_at DATETIME DEFAULT (datetime('now', 'localtime')),
updated_at DATETIME DEFAULT (datetime('now', 'localtime')),
is_full_data INTEGER DEFAULT (0) NOT NULL,
from_actor_list INTEGER DEFAULT (0) NOT NULL,
from_movie_list INTEGER DEFAULT (0) NOT NULL
);
CREATE TABLE javdb_actors_alias (
actor_id INTEGER NOT NULL,
alias TEXT NOT NULL,
created_at DATETIME DEFAULT (datetime('now', 'localtime')),
updated_at DATETIME DEFAULT (datetime('now', 'localtime')),
PRIMARY KEY (actor_id, alias),
FOREIGN KEY (actor_id) REFERENCES javdb_actors(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "javdb_makers" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`parent_id` INTEGER DEFAULT NULL CHECK (`id` IS NOT `parent_id`) REFERENCES "javdb_makers"(`id`) ON DELETE SET NULL,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
`details` TEXT
, from_list INTEGER DEFAULT (0), from_movie_list INTEGER DEFAULT (0));
CREATE TABLE IF NOT EXISTS "javdb_series" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`parent_id` INTEGER DEFAULT NULL CHECK (`id` IS NOT `parent_id`) REFERENCES "javdb_series"(`id`) ON DELETE SET NULL,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
`details` TEXT
, from_list INTEGER DEFAULT (0), from_movie_list INTEGER DEFAULT (0));
CREATE TABLE IF NOT EXISTS "javdb_movies" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
href TEXT UNIQUE,
title TEXT,
cover_url TEXT,
serial_number TEXT,
release_date TEXT,
duration TEXT,
maker_id TEXT,
series_id TEXT,
is_full_data INTEGER DEFAULT (0) NOT NULL,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
from_actor_list INTEGER DEFAULT (0) NOT NULL,
from_movie_makers INTEGER DEFAULT (0) NOT NULL,
from_movie_series INTEGER DEFAULT (0) NOT NULL
, from_movie_publishers INTEGER DEFAULT (0) NOT NULL, pub_id INTEGER, uncensored INTEGER DEFAULT (0) NOT NULL);
CREATE TABLE IF NOT EXISTS "javdb_actors_movies" (
actor_id INTEGER,
movie_id INTEGER,
tags TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')), updated_at TEXT,
PRIMARY KEY (actor_id, movie_id),
FOREIGN KEY (actor_id) REFERENCES javdb_actors(id),
FOREIGN KEY (movie_id) REFERENCES "javdb_movies"(id)
);
CREATE TABLE IF NOT EXISTS "javdb_task_log" (
`task_id` integer not null primary key autoincrement,
`full_data_actors` integer,
`total_actors` integer,
`full_data_movies` integer,
`total_movies` integer,
`total_makers` integer,
`total_series` integer,
`task_status` varchar(255),
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE VIEW view_iafd_movies_summary AS
SELECT
COUNT(*) AS total_count,
SUM(CASE WHEN from_performer_list = 1 THEN 1 ELSE 0 END) AS from_perfromers,
SUM(CASE WHEN from_dist_list = 1 THEN 1 ELSE 0 END) AS from_dis,
SUM(CASE WHEN from_stu_list = 1 THEN 1 ELSE 0 END) AS from_stu,
SUM(CASE WHEN from_performer_list=1 AND from_dist_list = 1 THEN 1 ELSE 0 END) AS performers_dist,
SUM(CASE WHEN from_performer_list=1 AND from_stu_list = 1 THEN 1 ELSE 0 END) AS performers_stu,
SUM(CASE WHEN from_dist_list=1 AND from_stu_list = 1 THEN 1 ELSE 0 END) AS dist_stu,
SUM(CASE WHEN from_performer_list=1 AND from_dist_list=1 AND from_stu_list = 1 THEN 1 ELSE 0 END) AS performers_dist_stu,
SUM(CASE WHEN from_performer_list=1 AND from_dist_list=0 AND from_stu_list = 0 THEN 1 ELSE 0 END) AS performers_only,
SUM(CASE WHEN from_performer_list=0 AND from_dist_list=1 AND from_stu_list = 0 THEN 1 ELSE 0 END) AS dist_only,
SUM(CASE WHEN from_performer_list=0 AND from_dist_list=0 AND from_stu_list = 1 THEN 1 ELSE 0 END) AS stu_only
FROM iafd_movies im
/* view_iafd_movies_summary(total_count,from_perfromers,from_dis,from_stu,performers_dist,performers_stu,dist_stu,performers_dist_stu,performers_only,dist_only,stu_only) */;
CREATE VIEW view_iafd_thelordofporn_match AS
SELECT
ia.id AS iafd_id, ia.href AS iafd_href, ia.name AS iafd_name,
tl.id AS tl_id, tl.pornstar AS tl_pornstar, tl.href AS tl_href
FROM thelordofporn_actress tl
JOIN iafd_performers ia ON tl.pornstar = ia.name
/* view_iafd_thelordofporn_match(iafd_id,iafd_href,iafd_name,tl_id,tl_pornstar,tl_href) */;
CREATE VIEW view_iafd_performers_movies AS
SELECT p.id, p.href, p.name, IFNULL(COUNT(pm.performer_id), 0) AS actual_movies_cnt, p.movies_cnt
FROM iafd_performers p
LEFT JOIN iafd_performers_movies pm ON pm.performer_id = p.id
GROUP BY p.id
/* view_iafd_performers_movies(id,href,name,actual_movies_cnt,movies_cnt) */;
CREATE VIEW view_javdb_javhd_match AS
SELECT
ja.id AS javdb_id, ja.href AS javdb_href, ja.name AS javdb_name,
jm.id AS javhd_id, jm.ja_name AS javhd_ja_name, jm.en_name AS javhd_en_name, jm.url AS javhd_url
FROM javdb_actors ja
JOIN javhd_models jm ON ja.name = jm.ja_name
/* view_javdb_javhd_match(javdb_id,javdb_href,javdb_name,javhd_id,javhd_ja_name,javhd_en_name,javhd_url) */;
CREATE VIEW view_iafd_javdb_javhd_match AS
SELECT
ip.id AS iafd_id, ip.href AS iafd_href, ip.name AS iafd_name,
jjm.javdb_id AS javdb_id, jjm.javdb_name AS javdb_name, jjm.javdb_href AS javdb_href,
jjm.javhd_id AS javhd_id, jjm.javhd_en_name AS javhd_en_name, jjm.javhd_url AS javhd_url
FROM iafd_performers ip
JOIN javdb_javhd_match jjm ON ip.name = jjm.javhd_en_name;
CREATE TABLE IF NOT EXISTS "javdb_tags" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS "javdb_movies_tags" (
movie_id INTEGER,
tag_id INTEGER,
tags TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
PRIMARY KEY (tag_id, movie_id),
FOREIGN KEY (tag_id) REFERENCES javdb_tags(id),
FOREIGN KEY (movie_id) REFERENCES "javdb_movies"(id)
);
CREATE VIEW view_javdb_stat_actors AS
SELECT
is_full_data,
from_actor_list,
COUNT(*) AS record_count,
(SELECT COUNT(*) FROM javdb_actors) AS total_record_count
FROM
javdb_actors
GROUP BY
is_full_data, from_actor_list
/* view_javdb_stat_actors(is_full_data,from_actor_list,record_count,total_record_count) */;
CREATE VIEW view_javdb_stat_movie_maker_series AS
-- 统计 makers 相关数据
SELECT
'makers' AS stat_type,
COALESCE(m.id, 0) AS id, -- 如果 m.id 为 NULL使用 -1 作为默认值
COALESCE(m.name, '') AS name,
COALESCE(m.href, '') AS href,
COALESCE(m.from_list, 0) AS from_list,
COALESCE(m.from_movie_list, 0) AS from_movie_list,
COUNT(mv.id) AS count
FROM javdb_movies mv
LEFT JOIN javdb_makers m ON mv.maker_id = m.id
GROUP BY mv.maker_id
UNION ALL
SELECT
'series' AS stat_type,
COALESCE(s.id, 0) AS id, -- 如果 s.id 为 NULL使用 -1 作为默认值
COALESCE(s.name, '') AS name,
COALESCE(s.href, '') AS href,
COALESCE(s.from_list, 0) AS from_list,
COALESCE(s.from_movie_list, 0) AS from_movie_list,
COUNT(mv.id) AS count
FROM javdb_movies mv
LEFT JOIN javdb_series s ON mv.series_id = s.id
GROUP BY mv.series_id
ORDER BY count DESC
/* view_javdb_stat_movie_maker_series(stat_type,id,name,href,from_list,from_movie_list,count) */;
CREATE VIEW view_javdb_stat_movie_by_year AS
SELECT
-- 提取年份,如果日期不符合格式或者为空,当作 0000-00-00 处理
substr(release_date, 1, 4) AS release_year,
-- 统计每年的影片数量
COUNT(*) AS movie_count
FROM
javdb_movies
GROUP BY
release_year
ORDER BY
release_year
/* view_javdb_stat_movie_by_year(release_year,movie_count) */;
CREATE TABLE IF NOT EXISTS "javdb_publishers" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`parent_id` INTEGER DEFAULT NULL CHECK (`id` IS NOT `parent_id`) REFERENCES "javdb_makers"(`id`) ON DELETE SET NULL,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
`details` TEXT,
`from_list` INTEGER DEFAULT (0),
`from_movie_list` INTEGER DEFAULT (0)
);
CREATE VIEW view_javdb_stat_movies AS
SELECT
is_full_data,
uncensored,
COUNT(*) AS record_count,
(SELECT COUNT(*) FROM javdb_movies) AS total_record_count
FROM
javdb_movies
GROUP BY
is_full_data, uncensored
/* view_javdb_stat_movies(is_full_data,uncensored,record_count,total_record_count) */;
CREATE VIEW view_javdb_stat_movies_uncensored AS
-- 第一种统计筛选javdb_movies表中其在javdb_actors_movies中对应的actor_id在javdb_actors中的from_actor_list =1
SELECT
'actor_list' AS stat_type,
jm.id,
jm.href,
jm.title,
jm.serial_number,
jm.release_date,
jm.is_full_data,
jm.uncensored
FROM
javdb_movies jm
JOIN
javdb_actors_movies jam ON jm.id = jam.movie_id
JOIN
javdb_actors ja ON jam.actor_id = ja.id
WHERE
ja.from_actor_list = 1
UNION ALL
-- 第二种统计筛选javdb_movies表中其maker_id不为空且在javdb_makers中对应的行的from_list = 1
SELECT
'maker_list' AS stat_type,
jm.id,
jm.href,
jm.title,
jm.serial_number,
jm.release_date,
jm.is_full_data,
jm.uncensored
FROM
javdb_movies jm
JOIN
javdb_makers jmk ON jm.maker_id = jmk.id
WHERE
jm.maker_id IS NOT NULL AND jmk.from_list = 1
UNION ALL
-- 第三种统计筛选javdb_movies表中其series_id不为空且在javdb_series中对应的行的from_list = 1
SELECT
'series_list' AS stat_type,
jm.id,
jm.href,
jm.title,
jm.serial_number,
jm.release_date,
jm.is_full_data,
jm.uncensored
FROM
javdb_movies jm
JOIN
javdb_series js ON jm.series_id = js.id
WHERE
jm.series_id IS NOT NULL AND js.from_list = 1
/* view_javdb_stat_movies_uncensored(stat_type,id,href,title,serial_number,release_date,is_full_data,uncensored) */;
CREATE TABLE javbus_actors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
ja_name TEXT,
zh_name TEXT,
en_name TEXT,
href TEXT UNIQUE,
pic TEXT,
birth_date TEXT,
height TEXT,
breast_size TEXT,
measurements TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
uncensored INTEGER DEFAULT (0) NOT NULL,
is_full_data INTEGER DEFAULT (0) NOT NULL,
from_actor_list INTEGER DEFAULT (0) NOT NULL,
from_movie_list INTEGER DEFAULT (0) NOT NULL
, movies_cnt INTEGER DEFAULT 0 NOT NULL);
CREATE TABLE IF NOT EXISTS "javbus_movies" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
href TEXT UNIQUE,
title TEXT,
cover_url TEXT,
serial_number TEXT,
release_date TEXT,
duration TEXT,
studio_id INTEGER,
label_id INTEGER,
series_id INTEGER,
is_full_data INTEGER DEFAULT (0) NOT NULL,
uncensored INTEGER DEFAULT (0) NOT NULL,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
from_actor_list INTEGER DEFAULT (0) NOT NULL,
from_movie_studios INTEGER DEFAULT (0) NOT NULL,
from_movie_labels INTEGER DEFAULT (0) NOT NULL,
from_movie_series INTEGER DEFAULT (0) NOT NULL
, actors_cnt INTEGER DEFAULT (0) NOT NULL);
CREATE TABLE IF NOT EXISTS "javbus_actors_movies" (
actor_id INTEGER,
movie_id INTEGER,
tags TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
PRIMARY KEY (actor_id, movie_id),
FOREIGN KEY (actor_id) REFERENCES javbus_actors(id),
FOREIGN KEY (movie_id) REFERENCES "javbus_movies"(id)
);
CREATE TABLE IF NOT EXISTS "javbus_labels" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255),
`en_name` VARCHAR(255),
`ja_name` VARCHAR(255),
`href` VARCHAR(255) UNIQUE,
`details` TEXT,
`uncensored` INTEGER DEFAULT (0),
`from_list` INTEGER DEFAULT (0),
`from_movie_list` INTEGER DEFAULT (0),
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
, movies_cnt INTEGER DEFAULT (0), magnet_cnt INTEGER DEFAULT (0));
CREATE TABLE IF NOT EXISTS "javbus_series" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255),
`en_name` VARCHAR(255),
`ja_name` VARCHAR(255),
`href` VARCHAR(255) UNIQUE,
`details` TEXT,
`uncensored` INTEGER DEFAULT (0),
`from_list` INTEGER DEFAULT (0),
`from_movie_list` INTEGER DEFAULT (0),
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
, movies_cnt INTEGER DEFAULT (0), magnet_cnt INTEGER DEFAULT (0));
CREATE TABLE IF NOT EXISTS "javbus_studios" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255),
`en_name` VARCHAR(255),
`ja_name` VARCHAR(255),
`href` VARCHAR(255) UNIQUE,
`details` TEXT,
`uncensored` INTEGER DEFAULT (0),
`from_list` INTEGER DEFAULT (0),
`from_movie_list` INTEGER DEFAULT (0),
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
, movies_cnt INTEGER DEFAULT (0), magnet_cnt INTEGER DEFAULT (0));
CREATE TABLE IF NOT EXISTS "javbus_tags" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255),
`en_name` VARCHAR(255),
`ja_name` VARCHAR(255),
`href` VARCHAR(255) UNIQUE,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS "javbus_movies_tags" (
movie_id INTEGER,
tag_id INTEGER,
tags TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
PRIMARY KEY (tag_id, movie_id),
FOREIGN KEY (tag_id) REFERENCES javbus_tags(id),
FOREIGN KEY (movie_id) REFERENCES "javbus_movies"(id)
);
CREATE INDEX idx_actor_movie_actor_id
ON javbus_actors_movies(actor_id);
CREATE INDEX idx_iafd_performers_movies_performer_id
ON iafd_performers_movies(performer_id);
CREATE TABLE IF NOT EXISTS "pbox_studios" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`label_id` INTEGER NOT NULL DEFAULT 0,
`scene_count` INTEGER NOT NULL DEFAULT 0,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
`description` TEXT
);
CREATE TABLE IF NOT EXISTS "pbox_movies" (
`id` integer not null primary key autoincrement,
`href` varchar(255) UNIQUE,
`title` varchar(255),
`movie_id` integer,
`content_id` integer,
`duration` varchar(255),
`publish_date` varchar(255),
`release_date` varchar(255),
`studio_id` integer,
`is_full_data` INTEGER DEFAULT (0) NOT NULL,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime')),
foreign key(`studio_id`) references "pbox_studios"(`id`) on delete SET NULL
);
CREATE TABLE IF NOT EXISTS "pbox_tags" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`name` VARCHAR(255) NOT NULL,
`href` VARCHAR(255) UNIQUE,
`tag_id` INTEGER,
`created_at` TEXT DEFAULT (datetime('now', 'localtime')),
`updated_at` TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS "pbox_actors" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
href TEXT UNIQUE,
gender TEXT,
age INTEGER,
nationality TEXT,
country TEXT,
movies_cnt INTEGER DEFAULT (0) NOT NULL,
is_full_data INTEGER DEFAULT (0) NOT NULL,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS "pbox_movies_tags" (
`id` integer not null primary key autoincrement,
movie_id INTEGER,
tag_id INTEGER,
movid_tagid varchar(255) UNIQUE,
tags TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
FOREIGN KEY (tag_id) REFERENCES pbox_tags(id),
FOREIGN KEY (movie_id) REFERENCES "pbox_movies"(id)
);
CREATE TABLE IF NOT EXISTS "pbox_movies_alts" (
`id` integer not null primary key autoincrement,
min_mov_id INTEGER,
max_mov_id INTEGER,
min_max varchar(255) UNIQUE,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
FOREIGN KEY (min_mov_id) REFERENCES "pbox_movies"(id),
FOREIGN KEY (max_mov_id) REFERENCES "pbox_movies"(id)
);
CREATE TABLE IF NOT EXISTS "pbox_actors_movies" (
`id` integer not null primary key autoincrement,
`actor_id` integer,
`movie_id` integer,
actor_mov varchar(255) UNIQUE,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')), tags TEXT,
foreign key(`actor_id`) references "pbox_actor"(`id`) on delete CASCADE,
foreign key(`movie_id`) references "pbox_movies"(`id`) on delete CASCADE
);
CREATE TABLE IF NOT EXISTS "pbox_actor_aliases" (
`id` integer not null primary key autoincrement,
`actor_id` integer NOT NULL,
`alias` varchar(255) NOT NULL,
actor_alias varchar(255) UNIQUE,
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
foreign key(`actor_id`) references "pbox_actors"(`id`) on delete CASCADE
);