06 Data Model
Data Model
Plotwise Writer Projects are self-contained SQLite3 databases.
ER Diagram / Schemas
Here's the schema definition which is stored as a resource in the Plotwise Writer executable.
CREATE TABLE metadata
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
"key" TEXT,
value TEXT
);
CREATE TABLE folders
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
parent_id INTEGER REFERENCES folders (id) ON DELETE CASCADE,
name TEXT NOT NULL,
sort_index INTEGER DEFAULT 0,
flags INTEGER DEFAULT (0) NOT NULL
);
CREATE TABLE files
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
folder_id INTEGER,
name TEXT NOT NULL,
sort_index INTEGER DEFAULT (0),
updated_at DATETIME DEFAULT (CURRENT_TIMESTAMP),
CONSTRAINT FK_files_folders FOREIGN KEY (folder_id) REFERENCES folders (id) ON DELETE CASCADE
);
CREATE TABLE content
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_id INTEGER NOT NULL,
content_md TEXT NOT NULL,
updated_at DATETIME DEFAULT (CURRENT_TIMESTAMP),
is_autosave INTEGER NOT NULL,
content_hash TEXT NOT NULL,
CONSTRAINT FK_autosave_files FOREIGN KEY (file_id) REFERENCES files (id) ON DELETE CASCADE
);
CREATE TABLE tags
(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
label TEXT NOT NULL,
color TEXT NOT NULL
);
CREATE TABLE _version
(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
version TEXT NOT NULL,
date DATETIME DEFAULT (CURRENT_TIMESTAMP)
)