mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 06:51:12 -05:00
21 lines
1.4 KiB
SQL
21 lines
1.4 KiB
SQL
-- Add roller coaster specific columns to the rides table
|
|
ALTER TABLE public.rides
|
|
ADD COLUMN coaster_type TEXT CHECK (coaster_type IN ('steel', 'wood', 'hybrid')),
|
|
ADD COLUMN seating_type TEXT,
|
|
ADD COLUMN intensity_level TEXT CHECK (intensity_level IN ('family', 'thrill', 'extreme')),
|
|
ADD COLUMN former_names JSONB DEFAULT '[]'::jsonb,
|
|
ADD COLUMN drop_height_meters NUMERIC(6,2),
|
|
ADD COLUMN max_g_force NUMERIC(4,2);
|
|
|
|
-- Add indexes for better query performance on commonly filtered fields
|
|
CREATE INDEX idx_rides_coaster_type ON public.rides(coaster_type) WHERE coaster_type IS NOT NULL;
|
|
CREATE INDEX idx_rides_seating_type ON public.rides(seating_type) WHERE seating_type IS NOT NULL;
|
|
CREATE INDEX idx_rides_intensity_level ON public.rides(intensity_level) WHERE intensity_level IS NOT NULL;
|
|
|
|
-- Add comments for documentation
|
|
COMMENT ON COLUMN public.rides.coaster_type IS 'Type of roller coaster construction: steel, wood, or hybrid';
|
|
COMMENT ON COLUMN public.rides.seating_type IS 'How riders are seated: sit_down, stand_up, flying, inverted, etc.';
|
|
COMMENT ON COLUMN public.rides.intensity_level IS 'Target audience intensity: family, thrill, or extreme';
|
|
COMMENT ON COLUMN public.rides.former_names IS 'Array of previous names this ride has had';
|
|
COMMENT ON COLUMN public.rides.drop_height_meters IS 'Maximum drop height in meters';
|
|
COMMENT ON COLUMN public.rides.max_g_force IS 'Maximum G-force experienced on the ride'; |