From ac75e1f4c69abf0b42eb83e9f92c78e437202587 Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Sun, 3 Nov 2024 14:31:15 +0000 Subject: [PATCH] chore: add ERM diagram --- README.md | 6 +++++- eolas-db-ERM.png | Bin 0 -> 70072 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 eolas-db-ERM.png diff --git a/README.md b/README.md index 7de269a..ada1d98 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,13 @@ SQLite database that records key metadata about each entry (tags, backlinks, out It exposes a command line application for interfacing with the database. -## Running app in local development +## Local development ``` source venv/bin/activate eolas-db ``` + +## ERM + +![ERM diagram for eolas-db](./eolas-db-ERM.png) diff --git a/eolas-db-ERM.png b/eolas-db-ERM.png new file mode 100644 index 0000000000000000000000000000000000000000..9072c64ccae156c7cd4342b79abe0ec36ba0ac76 GIT binary patch literal 70072 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 Ub6jHBsNly)Z?A5Jwo}Z10eS=<$N&HU literal 0 HcmV?d00001