PHP Classes

File: SQL File

Recommend this page to a friend!
  Packages of Matthew Asham   Binkterm PHP   database/migrations/v1.7.9_chat.sql   Download  
File: database/migrations/v1.7.9_chat.sql
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Binkterm PHP
Bulletin board system based on the Web
Author: By
Last change:
Date: 1 month ago
Size: 1,338 bytes
 

Contents

Class file image Download
-- Migration: v1.7.9_chat.sql -- Description: Add chat rooms and messages for multi-user chat -- Date: 2026-01-28 CREATE TABLE IF NOT EXISTS chat_rooms ( id SERIAL PRIMARY KEY, name VARCHAR(64) NOT NULL UNIQUE, description VARCHAR(255), is_active BOOLEAN NOT NULL DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS chat_messages ( id SERIAL PRIMARY KEY, room_id INTEGER REFERENCES chat_rooms(id) ON DELETE CASCADE, from_user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, to_user_id INTEGER REFERENCES users(id) ON DELETE CASCADE, body TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, CHECK ( (room_id IS NOT NULL AND to_user_id IS NULL) OR (room_id IS NULL AND to_user_id IS NOT NULL) ) ); CREATE INDEX IF NOT EXISTS idx_chat_messages_room_id ON chat_messages(room_id, id); CREATE INDEX IF NOT EXISTS idx_chat_messages_to_user ON chat_messages(to_user_id, id); CREATE INDEX IF NOT EXISTS idx_chat_messages_from_user ON chat_messages(from_user_id, id); CREATE INDEX IF NOT EXISTS idx_chat_messages_created ON chat_messages(created_at); INSERT INTO chat_rooms (name, description, is_active) SELECT 'Lobby', 'General chat lobby', TRUE WHERE NOT EXISTS (SELECT 1 FROM chat_rooms WHERE name = 'Lobby');