From c36b0cdcf89dfd9bb566c3ba06b2ac6898cd95c2 Mon Sep 17 00:00:00 2001 From: Jay Brown Date: Mon, 27 Jan 2025 18:57:03 +0000 Subject: [PATCH] Merged in feature/db-docs (pull request #37) db schema docs * db schema docs --- docs/database.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docs/database.md diff --git a/docs/database.md b/docs/database.md new file mode 100644 index 00000000..dc5f03d6 --- /dev/null +++ b/docs/database.md @@ -0,0 +1,96 @@ +# Database schema + +To view this diagrem live in vscode use the https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid extension. + +You can also edit live with https://mermaid.live + +This diagram should be updated manually when there are changes to the database schema. + +```mermaid +erDiagram + clients ||--o{ jobs : has + jobs ||--o{ documents : has + jobs ||--|| collectors : has + documents ||--o{ results : has + queries ||--o{ results : has + queries ||--o{ requiredQueries : has + queries ||--o{ queryConfigs : has + collectors ||--o{ collectorQueries : has + collectors ||--o{ collectorCodeVersions : has + queries ||--o{ collectorQueries : references + + clients { + uuid id PK + text name UK + boolean canSync + } + + jobs { + uuid id PK + uuid clientId FK + boolean canSync + } + + documents { + uuid id PK + uuid jobId FK + } + + collectors { + uuid id PK + uuid jobId FK + int latestVersion + int activeVersion + } + + collectorCodeVersions { + uuid id PK + uuid collectorId FK + int minCleanVersion + int minTextVersion + int addedVersion + int removedVersion + } + + queries { + uuid id PK + int latestVersion + int activeVersion + queryType type + } + + requiredQueries { + uuid id PK + uuid queryId FK + uuid requiredQueryId FK + int addedVersion + int removedVersion + } + + queryConfigs { + uuid id PK + uuid queryId FK + jsonb config + int addedVersion + int removedVersion + } + + collectorQueries { + uuid id PK + uuid collectorId FK + varchar name + uuid queryId FK + int addedVersion + int removedVersion + } + + results { + uuid id PK + uuid queryId FK + uuid documentId FK + text value + int cleanVersion + int textVersion + int queryVersion + } +```