74 lines
2.2 KiB
SQL
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)
|
|
);
|