Files
Liscord/back/migrations/2025-08-17-115759_create_base/up.sql
2025-08-25 22:41:07 +02:00

74 lines
2.2 KiB
SQL

-- Your SQL goes here
-- Table des utilisateurs
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Table des serveurs
CREATE TABLE servers (
server_id INT AUTO_INCREMENT PRIMARY KEY,
server_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Table des canaux
CREATE TABLE channels (
channel_id INT AUTO_INCREMENT PRIMARY KEY,
server_id INT NOT NULL,
channel_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (server_id) REFERENCES servers(server_id)
);
-- Table des messages
CREATE TABLE messages (
message_id INT AUTO_INCREMENT PRIMARY KEY,
channel_id INT NOT NULL,
user_id INT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (channel_id) REFERENCES channels(channel_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- Table des membres de serveur
CREATE TABLE server_members (
server_member_id INT AUTO_INCREMENT PRIMARY KEY,
server_id INT NOT NULL,
user_id INT NOT NULL,
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (server_id) REFERENCES servers(server_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- Table des membres de canal
CREATE TABLE channel_members (
channel_member_id INT AUTO_INCREMENT PRIMARY KEY,
channel_id INT NOT NULL,
user_id INT NOT NULL,
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (channel_id) REFERENCES channels(channel_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- Table des rôles
CREATE TABLE roles (
role_id INT AUTO_INCREMENT PRIMARY KEY,
server_id INT NOT NULL,
role_name VARCHAR(50) NOT NULL,
FOREIGN KEY (server_id) REFERENCES servers(server_id)
);
-- Table des relations utilisateur-rôle
CREATE TABLE user_roles (
user_role_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
role_id INT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (role_id) REFERENCES roles(role_id)
);