phase 2
This commit is contained in:
33
supabase/schema.sql
Normal file
33
supabase/schema.sql
Normal file
@@ -0,0 +1,33 @@
|
||||
-- ============================================================
|
||||
-- Schema: English Learning App (TOEIC Focus)
|
||||
-- Run this FIRST before seed.sql
|
||||
-- ============================================================
|
||||
|
||||
-- TOEIC questions (Part 1–7)
|
||||
CREATE TABLE IF NOT EXISTS questions (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
part INT NOT NULL CHECK (part BETWEEN 1 AND 7),
|
||||
type TEXT,
|
||||
content TEXT NOT NULL,
|
||||
options JSONB NOT NULL DEFAULT '[]', -- ["A. ...", "B. ...", "C. ...", "D. ..."]
|
||||
answer TEXT NOT NULL, -- "A" | "B" | "C" | "D"
|
||||
explanation TEXT,
|
||||
audio_url TEXT, -- Part 1–4 (listening)
|
||||
image_url TEXT, -- Part 1 (photos)
|
||||
created_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
-- TOEIC vocabulary (6 topics)
|
||||
CREATE TABLE IF NOT EXISTS vocab (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
word TEXT NOT NULL,
|
||||
phonetic TEXT,
|
||||
meaning_vi TEXT NOT NULL,
|
||||
topic TEXT NOT NULL CHECK (topic IN ('Business', 'Office', 'Travel', 'Finance', 'HR', 'Marketing')),
|
||||
example TEXT,
|
||||
created_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
-- Indexes for common query patterns
|
||||
CREATE INDEX IF NOT EXISTS idx_questions_part ON questions(part);
|
||||
CREATE INDEX IF NOT EXISTS idx_vocab_topic ON vocab(topic);
|
||||
Reference in New Issue
Block a user