You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
SQL
52 lines
1.4 KiB
SQL
|
|
--
|
|
-- Entities
|
|
--
|
|
|
|
-- Dispense
|
|
CREATE TABLE IF NOT EXISTS "dispense"(
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"created_at" TEXT NOT NULL,
|
|
"owner_id" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL
|
|
);
|
|
|
|
-- Contenuto caricato
|
|
CREATE TABLE IF NOT EXISTS "uploads"(
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"created_at" TEXT NOT NULL,
|
|
"owner_id" TEXT NOT NULL,
|
|
"dispensa_id" TEXT NOT NULL,
|
|
"file" TEXT NOT NULL,
|
|
FOREIGN KEY (dispensa_id) REFERENCES dispense(id)
|
|
);
|
|
|
|
-- Contenuti con hash approvati
|
|
CREATE TABLE IF NOT EXISTS "file_approvals"(
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"created_at" TEXT NOT NULL,
|
|
"owner_id" TEXT NOT NULL, -- Moderatore che ha creato questa approvazione
|
|
"upload_id" TEXT NOT NULL, -- Upload a cui si riferisce questa approvazione
|
|
"status" TEXT NOT NULL, -- Risultato dell'approvazione: "approved" | "rejected"
|
|
FOREIGN KEY (upload_id) REFERENCES uploads(id)
|
|
);
|
|
|
|
-- Download counter
|
|
CREATE TABLE IF NOT EXISTS "downloads"(
|
|
"dispensa_id" TEXT NOT NULL,
|
|
"timestamp" TEXT NOT NULL,
|
|
FOREIGN KEY (dispensa_id) REFERENCES dispense(id)
|
|
)
|
|
|
|
--
|
|
-- Relations
|
|
--
|
|
|
|
-- Tags per le dispense
|
|
CREATE TABLE IF NOT EXISTS "tags"(
|
|
"dispensa_id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
FOREIGN KEY (dispensa_id) REFERENCES dispense(id)
|
|
);
|