Database Schema Design
Help me design a database schema:
Requirements
- •What are we storing? Describe the data.
- •Relationships: How do entities relate?
- •Access patterns: How will data be queried?
- •Scale: Expected data volume?
- •Database: PostgreSQL, MySQL, MongoDB, etc.?
Entity Design
For each entity, define:
Table Structure
- •Table name (plural, snake_case)
- •Columns with types
- •Primary key
- •Timestamps (created_at, updated_at)
- •Soft delete (deleted_at) if needed
Constraints
- •NOT NULL where required
- •UNIQUE constraints
- •CHECK constraints for validation
- •DEFAULT values
Relationships
- •Foreign keys
- •ON DELETE behavior
- •Junction tables for many-to-many
Indexes
- •Primary key index
- •Foreign key indexes
- •Query-specific indexes
- •Composite indexes where needed
Schema Generation
Generate:
- •CREATE TABLE statements
- •Index creation
- •RLS policies (if using Supabase)
- •Sample seed data
Optimization Review
Check for:
- •Normalization level appropriate
- •Index strategy sound
- •Query patterns supported
- •Future scaling considerations
Generate the complete schema with comments explaining decisions.