first commit
This commit is contained in:
73
back/migrations/2025-08-17-115759_create_base/up.sql
Normal file
73
back/migrations/2025-08-17-115759_create_base/up.sql
Normal file
@@ -0,0 +1,73 @@
|
||||
-- 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)
|
||||
);
|
||||
Reference in New Issue
Block a user