latest changes before server transfer
Some checks failed
Deploy to Firebase Hosting on merge / build_and_deploy (push) Has been cancelled
Some checks failed
Deploy to Firebase Hosting on merge / build_and_deploy (push) Has been cancelled
This commit is contained in:
52
setup.sql
Normal file
52
setup.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- SQL script to create tables for authentication and session management
|
||||
|
||||
-- Create the users table
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` VARCHAR(255) NOT NULL PRIMARY KEY,
|
||||
`provider` VARCHAR(50) NOT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create the sessions table
|
||||
CREATE TABLE IF NOT EXISTS `sessions` (
|
||||
`id` VARCHAR(255) NOT NULL PRIMARY KEY,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Create the session_users table to link sessions and users
|
||||
CREATE TABLE IF NOT EXISTS `session_users` (
|
||||
`session_id` VARCHAR(255) NOT NULL,
|
||||
`user_id` VARCHAR(255) NOT NULL,
|
||||
`provider` VARCHAR(50) NOT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`session_id`, `user_id`),
|
||||
FOREIGN KEY (`session_id`) REFERENCES `sessions` (`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Create the votes table
|
||||
CREATE TABLE IF NOT EXISTS `votes` (
|
||||
`session_id` VARCHAR(255) NOT NULL,
|
||||
`user_id` VARCHAR(255) NOT NULL,
|
||||
`vote` INT NOT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`session_id`, `user_id`),
|
||||
FOREIGN KEY (`session_id`) REFERENCES `sessions` (`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Index for faster lookups on session_users
|
||||
CREATE INDEX `idx_session_users_session_id` ON `session_users`(`session_id`);
|
||||
CREATE INDEX `idx_session_users_user_id` ON `session_users`(`user_id`);
|
||||
|
||||
-- Index for votes table
|
||||
CREATE INDEX `idx_votes_session_id` ON `votes`(`session_id`);
|
||||
CREATE INDEX `idx_votes_user_id` ON `votes`(`user_id`);
|
||||
|
||||
-- Adjustments for existing queries (if needed)
|
||||
-- Example: Use INSERT IGNORE to prevent duplicate key errors
|
||||
-- This is for adding users or session users, which is already handled in the route logic
|
||||
Reference in New Issue
Block a user