---
title: Database Schema
description: "The app uses SQLite. The main DB (`maindb.db`) stores `users` and `projects`. Each project DB includes: - **`csv_data`**: Raw pairs (`id`, `error_text`, `corrected_text`, `title`). - **`tags`**: Tag definitions (`id`, `name` UNIQUE, `description`, `parent_tag_id`, `color`). - **`annotations`**: Tag applications (`id`, `project_name`,…"
url: "https://erroranalyzer.com/docs/database-schema/"
updated: "2025-09-10"
category: Reference
---

# Database Schema

The app uses SQLite. The main DB (`maindb.db`) stores `users` and `projects`. Each project DB includes:

- **`csv_data`**: Raw pairs (`id`, `error_text`, `corrected_text`, `title`).
- **`tags`**: Tag definitions (`id`, `name` UNIQUE, `description`, `parent_tag_id`, `color`).
- **`annotations`**: Tag applications (`id`, `project_name`, `pair_id`, `data_type`, `start_offset`, `end_offset`, `tag_id`, `text`).
- **`notes`**: Pair-scoped notes (`id`, `pair_id`, `title`, `content`).
- **`chat_history`**: Analyzer chat logs (`id`, `pair_id`, `sender`, `message`).
- **`tr_chat_history`**: Tag Report chat logs (`id`, `sender`, `message`).
- **`tokens`**: Token-level NLP data (`id`, `pair_id`, `text_type`, `token`, `position`, `tag`, `lemma`, …).
- **`entities`**: Named entities (`id`, `pair_id`, `text_type`, `name`, `type`, `content`).
- **`auto_tagging_jobs`**: Background AI tagging jobs (`id`, `pair_id`, `instruction`, `plan`, `status`, `result`).
