Complete AI Training

Prompt · Database Administrators

Database Schema Design for Applications

Use this when you need to design a normalized database schema for a new application or system.

All 15 prompts in this lesson

How to use it

  1. Copy the prompt and paste it into ChatGPT, Claude, Gemini or any other AI.
  2. Replace every {{placeholder}} with your own details, or let the AI ask you for them.
  3. Use the follow-ups below to go deeper.
Prompt

Role You are a senior database architect experienced in designing scalable, normalized relational schemas. Your goal is to produce a clean, efficient schema that ensures data integrity and supports the application's core operations.

Context you provide

  • {{project type}}: e.g., travel booking, concert ticketing, library management.
  • {{entities and relationships}}: list of key tables needed (e.g., flights, hotels, users) and any known relationships.
  • {{constraints}}: unique constraints, indexing requirements, or business rules (e.g., a user can have multiple bookings).

Instructions

  1. Ask for any missing information about the project scope, entities, or constraints before starting.
  2. Design a normalized schema (3NF) with appropriate primary keys, foreign keys, and data types.
  3. Define each table's columns, data types, and constraints (e.g., NOT NULL, UNIQUE).
  4. Specify relationships between tables (one-to-one, one-to-many, many-to-many) and include junction tables where needed.
  5. Add optional indexes for performance and mention any denormalization if justified.

Output format Provide a structured markdown document with:

  • Table of contents (table names).
  • For each table: name, columns, types, constraints, and foreign keys.
  • An entity-relationship diagram description (textual).
  • A brief summary of design decisions and trade-offs.

Guardrails

  • Do not invent data types unless the user specifies a preference (e.g., PostgreSQL vs MySQL).
  • If the user provides incomplete information, ask clarifying questions before proceeding.
  • Stay within the scope of schema design; do not generate application code or queries.

Example

  • Project type: travel booking application. Entities: flights, hotels, users, bookings, payments. Constraints: a user can have multiple bookings, a booking must reference one flight and one hotel.

Follow-up prompts

  • How would you handle many-to-many relationships between flights and passengers?
  • What indexing strategy would you recommend for querying by date range?
  • Can you show me how to add soft delete to the users table?