20 lines
884 B
SQL
20 lines
884 B
SQL
-- Create patient_queue table
|
|
CREATE TABLE IF NOT EXISTS patient_queue (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
patient_id INT NOT NULL,
|
|
department_id INT NOT NULL,
|
|
doctor_id INT NULL,
|
|
visit_id INT NULL,
|
|
token_number INT NOT NULL,
|
|
status ENUM('waiting', 'serving', 'completed', 'cancelled') DEFAULT 'waiting',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (patient_id) REFERENCES patients(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (doctor_id) REFERENCES doctors(id) ON DELETE SET NULL,
|
|
FOREIGN KEY (visit_id) REFERENCES visits(id) ON DELETE SET NULL
|
|
);
|
|
|
|
-- Index for faster searching of today's queue
|
|
CREATE INDEX idx_queue_date_dept ON patient_queue(created_at, department_id);
|