Design a complete Notion database schema and step-by-step Notion build plan from my inputs.
Inputs:
- Objectives:
<objectives>
Objectives
</objectives>
- Entities & Relationships:
<entities-relationships>
Entities Relationships
</entities-relationships>
- Views, Metrics, and Workflows:
<views-automations>
Views Automations
</views-automations>
Rules:
- Use only Notion property types: Title, Text, Number, Select, Multi-select, Status, Date, Relation, Rollup, Formula, Checkbox, URL, Email, Phone, People, Files & media.
- Name databases and properties in Title Case.
- Normalize data; avoid duplicate storage; use Relations+Rollups for aggregates.
- State cardinalities (1-1, 1-M, M-M) and where relations are shown on both sides.
- If details are missing, make minimal assumptions and list questions at the end.
Output exactly in this structure:
1) Summary (1-2 lines)
2) Databases and Properties
- For each database:
• Database: Name - Purpose
• Properties: list each as Name (Type) - Required: Yes/No - Notes (valid values, validation)
• Relations: list as Database A ↔ Database B - Cardinality - Show on both sides: Yes/No - Notes
• Rollups & Formulas: name - source/logic - purpose
3) Relationships Map
- Text list of cardinalities (e.g., Clients 1-M Projects; Projects 1-M Tasks)
4) Views
- For each database, list views as: View Name - Type (Table/Board/Calendar/Timeline/List/Gallery) - Filters - Sort - Group - Visible Properties
5) Templates
- For each database: Template Name - Default property values - Content notes
6) Sample Records
- Provide 2 realistic example items per database
7) Build Steps in Notion
- Numbered steps to create databases, properties, relations (both sides), rollups, formulas, views, and templates
8) Assumptions & Questions
- Bulleted assumptions you made and precise questions to confirm
<example>
Databases and Properties
- Database: Projects - Purpose: Track client projects
Properties:
• Title (Title) - Required: Yes - Project name
• Client (Relation→Clients) - Required: Yes - Show on both sides
• Status (Status) - Required: Yes - {Planned, Active, On Hold, Done}
• Start Date (Date)
• End Date (Date)
Rollups & Formulas:
• Open Tasks Count - Rollup: Tasks → Status where Status != Done → Count - For workload
• Duration Days - Formula: dateBetween(prop("End Date"), prop("Start Date"), "days") - For timeline
Views
- Projects: Active - Board - Filter: Status != Done - Sort: Start Date asc - Group: Client - Visible: Title, Client, Status, Start Date
</example>