Структура базы данных - Vedji/comics_server GitHub Wiki

Структура базы данных

Список таблиц

Таблица manga

Описание полей

Название поля Тип поля NOT NULL Primary key UNIQUE Описание
manga_name VARCHAR(255) + + ID произведения
rus_manga_name TEXT + Название произведения
manga_description TEXT + Описание произведения
manga_title_image TEXT + ID изображения на сервере
manga_types VARCHAR(32) + Жанры произведения (Не реализованно)

SQL-запрос для создание таблиц

CREATE TABLE "manga" (
	"manga_name"	VARCHAR(255) UNIQUE,
	"rus_manga_name"	TEXT NOT NULL,
	"manga_description"	TEXT NOT NULL,
	"manga_title_image"	INTEGER NOT NULL,
	"manga_types"	VARCHAR(32) NOT NULL,
	PRIMARY KEY("manga_name")
)

Таблица chapters

Описание полей

Название поля Тип поля NOT NULL Primary key UNIQUE Описание
manga_name VARCHAR(255) + + + ID произведения
chapter_number INTEGER + + + Номер главы произведения
chapter_name VARCHAR(255) + Название главы
chapter_len INTEGER + Кол-во страниц в главе

SQL-запрос для создание таблиц

CREATE TABLE chapters(
    manga_name VARCHAR(255) NOT NULL,
    chapter_name VARCHAR(255) Not Null,
    chapter_number INTEGER NOT NULL,
    chapter_len INTEGER NOT NULL,
    PRIMARY KEY (manga_name, chapter_number),
    UNIQUE (manga_name, chapter_number)
)

Таблица pages

Описание полей

Название поля Тип поля NOT NULL Primary key Unique Описание
manga_name VARCHAR(255) + + + ID произведения
chapter_number INTEGER + + + Номер главы
page_number INTEGER + + + Номер страницы в главе
pages_image INTEGER + ID изображения для страницы

SQL-запрос для создание таблиц

CREATE TABLE pages(
    manga_name VARCHAR(255) NOT NULL,
    chapter_number INTEGER NOT NULL,
    page_number INTEGER NOT NULL,
    pages_image INTEGER NOT NULL,
    PRIMARY KEY (manga_name, chapter_number, page_number),
    UNIQUE (manga_name, chapter_number, page_number)

)

Таблица files

Описание полей

Название поля Тип поля NOT NULL Primary key UNIQUE AUTOINCREMENT Описание
image_id INTEGER + + + + ID файла
image_path TEXT + Путь к файлу на сервере
image_name TEXT + Название файла на сервере
image_format TEXT + Формат изображения

SQL-запрос для создание таблиц

CREATE TABLE files (
    image_id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL,
    image_path TEXT NOT NULL,
    image_name TEXT NOT NULL,
    image_format TEXT NOT NULL
)

Таблица users

Описание полей

Название поля Тип поля NOT NULL DEFAULT Primary key UNIQUE AUTOINCREMENT Описание
user_id INTEGER + + + + ID пользователя
user_name TEXT + + Имя пользователя
user_password TEXT + Пароль пользователя
role INTEGER 0 Роль пользователя в системе (Не реализованно)

SQL-запрос для создание таблиц

CREATE TABLE "users" (
	"user_id"	INTEGER NOT NULL UNIQUE,
	"user_name"	TEXT NOT NULL UNIQUE,
	"user_password"	TEXT NOT NULL,
	"role"	INTEGER DEFAULT 0,
	PRIMARY KEY("user_id" AUTOINCREMENT)
)

Таблица comments

Описание полей

Название поля Тип поля NOT NULL IF Primary key UNIQUE Описание
user_id INTEGER + + ID пользователя
manga_name VARCHAR(255) + + ID произведения
manga_rating INTEGER + x >= 0 && x <= 10 Оценка произведения по 10-бальной шкале
comment TEXT Тело комментария, примечание

SQL-запрос для создание таблиц

CREATE TABLE comments(
    user_id INTEGER,
    manga_name VARCHAR(255),
    manga_rating INTEGER NOT NULL
        CHECK ( manga_rating >= 0 and manga_rating <= 10 ),
    comment TEXT,
    PRIMARY KEY (user_id, manga_name),
    UNIQUE (user_id, manga_name)
)