82 lines
2.7 KiB
SQL
82 lines
2.7 KiB
SQL
-- Database schema for Cloud MCP Server
|
|
-- PostgreSQL database schema
|
|
|
|
-- Code Snippets table
|
|
CREATE TABLE IF NOT EXISTS code_snippets (
|
|
id VARCHAR(255) PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
code TEXT NOT NULL,
|
|
language VARCHAR(100) NOT NULL,
|
|
tags TEXT[] DEFAULT '{}',
|
|
category VARCHAR(100),
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Notes table
|
|
CREATE TABLE IF NOT EXISTS notes (
|
|
id VARCHAR(255) PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
content TEXT NOT NULL,
|
|
tags TEXT[] DEFAULT '{}',
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Tasks table
|
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
id VARCHAR(255) PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
description TEXT,
|
|
completed BOOLEAN NOT NULL DEFAULT FALSE,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
|
completed_at TIMESTAMP WITH TIME ZONE
|
|
);
|
|
|
|
-- Baby Milestones table
|
|
CREATE TABLE IF NOT EXISTS baby_milestones (
|
|
id VARCHAR(255) PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
description TEXT NOT NULL,
|
|
date DATE NOT NULL,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Math Resources table
|
|
CREATE TABLE IF NOT EXISTS math_resources (
|
|
id VARCHAR(255) PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
content TEXT NOT NULL,
|
|
grade VARCHAR(50),
|
|
difficulty VARCHAR(50),
|
|
tags TEXT[] DEFAULT '{}',
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Game Wishlist table
|
|
CREATE TABLE IF NOT EXISTS game_wishlist (
|
|
id VARCHAR(255) PRIMARY KEY,
|
|
game_name TEXT NOT NULL,
|
|
platform VARCHAR(100),
|
|
notes TEXT,
|
|
added_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Create indexes for better search performance
|
|
CREATE INDEX IF NOT EXISTS idx_code_snippets_tags ON code_snippets USING GIN(tags);
|
|
CREATE INDEX IF NOT EXISTS idx_code_snippets_language ON code_snippets(language);
|
|
CREATE INDEX IF NOT EXISTS idx_code_snippets_category ON code_snippets(category);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_notes_tags ON notes USING GIN(tags);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_tasks_completed ON tasks(completed);
|
|
CREATE INDEX IF NOT EXISTS idx_tasks_created_at ON tasks(created_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_baby_milestones_date ON baby_milestones(date);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_math_resources_tags ON math_resources USING GIN(tags);
|
|
CREATE INDEX IF NOT EXISTS idx_math_resources_grade ON math_resources(grade);
|
|
CREATE INDEX IF NOT EXISTS idx_math_resources_difficulty ON math_resources(difficulty);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_game_wishlist_platform ON game_wishlist(platform);
|