mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-01-28 23:51:01 -05:00
32 lines
1.0 KiB
SQL
32 lines
1.0 KiB
SQL
CREATE TABLE IF NOT EXISTS profile_stars (
|
|
created_time TIMESTAMPTZ DEFAULT now() NOT NULL,
|
|
creator_id TEXT NOT NULL,
|
|
star_id TEXT DEFAULT random_alphanumeric(12) NOT NULL,
|
|
target_id TEXT NOT NULL,
|
|
CONSTRAINT profile_stars_pkey PRIMARY KEY (creator_id, star_id)
|
|
);
|
|
|
|
ALTER TABLE profile_stars
|
|
ADD CONSTRAINT profile_stars_creator_id_fkey
|
|
FOREIGN KEY (creator_id)
|
|
REFERENCES users(id)
|
|
ON DELETE CASCADE;
|
|
|
|
ALTER TABLE profile_stars
|
|
ADD CONSTRAINT profile_stars_target_id_fkey
|
|
FOREIGN KEY (target_id)
|
|
REFERENCES users(id)
|
|
ON DELETE CASCADE;
|
|
|
|
-- Row Level Security
|
|
ALTER TABLE profile_stars ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Policies
|
|
DROP POLICY IF EXISTS "public read" ON profile_stars;
|
|
CREATE POLICY "public read" ON profile_stars
|
|
FOR SELECT USING (true);
|
|
|
|
-- Indexes
|
|
-- The primary key already creates a unique index on (creator_id, star_id), so no need to recreate it.
|
|
CREATE INDEX IF NOT EXISTS profile_stars_target_id_idx ON public.profile_stars USING btree (target_id);
|