htmgo/examples/chat/internal/db/schema.sql

34 lines
1.2 KiB
MySQL
Raw Normal View History

2024-09-30 22:31:09 +00:00
CREATE TABLE IF NOT EXISTS users
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
2024-10-01 03:08:52 +00:00
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
session_id TEXT NOT NULL
2024-09-30 22:31:09 +00:00
) STRICT;
CREATE TABLE IF NOT EXISTS chat_rooms
(
2024-10-01 03:08:52 +00:00
id TEXT PRIMARY KEY,
2024-09-30 22:31:09 +00:00
name TEXT NOT NULL,
last_message_sent_at TEXT,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
) STRICT;
CREATE TABLE IF NOT EXISTS messages
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
chat_room_id TEXT NOT NULL,
user_id INTEGER NOT NULL,
2024-10-01 03:08:52 +00:00
username TEXT NOT NULL,
2024-09-30 22:31:09 +00:00
message TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (chat_room_id) REFERENCES chat_rooms (id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
) STRICT;
CREATE INDEX IF NOT EXISTS idx_messages_chat_room_id ON messages (chat_room_id);
CREATE INDEX IF NOT EXISTS idx_messages_user_id ON messages (user_id);