-- 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) );