База данных CMS Doka включает в себя 24 таблицы, обеспечивающие управление контентом, пользователями, SEO, тестами, файлами, уведомлениями и задачами. Архитектура БД разработана с учетом масштабируемости и гибкости, что позволяет легко интегрировать систему с внешними сервисами.
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role ENUM('admin','editor','user') NOT NULL DEFAULT 'user',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
auth_provider ENUM('local', 'google', 'facebook', 'vk', 'telegram') NOT NULL DEFAULT 'local',
auth_id VARCHAR(255) NULL UNIQUE,
full_name VARCHAR(255) NULL,
birth_date DATE NULL,
address TEXT NULL,
phone VARCHAR(20) NULL,
avatar VARCHAR(255) NULL,
last_login DATETIME NULL,
is_verified TINYINT(1) NOT NULL DEFAULT 0,
verification_token VARCHAR(255) NULL,
CONSTRAINT unique_auth_provider UNIQUE (auth_provider, auth_id)
);
CREATE TABLE menu (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
url VARCHAR(255) NOT NULL,
position INT NOT NULL DEFAULT 0,
parent_id INT NULL,
FOREIGN KEY (parent_id) REFERENCES menu(id) ON DELETE CASCADE
);