Database Designer
Infer schema from requirements. User never writes SQL.
Process
- •
Analyze requirements
- •"Users can save expenses" → users, expenses tables
- •"Track categories" → categories table
- •"Monthly reports" → consider aggregation
- •
Design schema
- •Tables and columns
- •Relationships (1:1, 1:N, N:M)
- •Indexes for performance
- •
Generate migration
- •Create migration file
- •Apply to database
- •Update ORM models
Schema Patterns
| Feature | Tables |
|---|---|
| Auth | users, sessions |
| Blog | posts, comments, tags |
| E-commerce | products, orders, order_items |
| Tasks | tasks, projects, labels |
| Social | users, posts, follows, likes |
Template-Specific
Supabase (nextjs-supabase)
sql
-- Auto-generated, user doesn't see create table expenses ( id uuid primary key default gen_random_uuid(), user_id uuid references users(id), amount decimal not null, category text, created_at timestamptz default now() );
PostgreSQL (fastapi-postgres)
python
# Alembic migration auto-generated
class Expense(Base):
id = Column(UUID, primary_key=True)
user_id = Column(UUID, ForeignKey('users.id'))
amount = Column(Numeric, nullable=False)
Drizzle (hono-drizzle)
typescript
// Schema auto-generated
export const expenses = pgTable('expenses', {
id: uuid('id').primaryKey().defaultRandom(),
userId: uuid('user_id').references(() => users.id),
amount: numeric('amount').notNull(),
});
User Experience
User: "I want to track expenses by category"
Internally:
- •Create expenses table
- •Create categories table
- •Add foreign key
- •Generate models
- •Create migration
- •Apply to database
User sees: "✅ Ready to save expenses"