schema.sql 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* SQLite schema for pocket_archive. */
  2. CREATE TABLE atbl_art_type (
  3. id int PRIMARY KEY AUTOINCREMENT,
  4. label text NOT NULL UNIQUE,
  5. broader_id int,
  6. FOREIGN KEY (broader_id) REFERENCES atbl_art_type(id)
  7. );
  8. /* Metadata schema. Each row represents a field definition. */
  9. CREATE TABLE atbl_md_schema (
  10. id int PRIMARY KEY AUTOINCREMENT,
  11. uri TEXT NOT NULL UNIQUE,
  12. label TEXT NOT NULL UNIQUE,
  13. description TEXT,
  14. data_type int NOT NULL,
  15. min_card int DEFAULT 0,
  16. max_card int,
  17. range TEXT
  18. );
  19. CREATE TABLE tbl_metadatum (
  20. id int PRIMARY KEY AUTOINCREMENT,
  21. field_id int NOT NULL,
  22. value_int int, /* This includes timestamps. */
  23. value_float real,
  24. value_str TEXT
  25. /* TODO add more types as needs arise. */
  26. );
  27. CREATE TABLE tbl_artifact (
  28. id int PRIMARY KEY AUTOINCREMENT,
  29. provided_id TEXT UNIQUE,
  30. type_id int NOT NULL,
  31. metadata_id int NOT NULL,
  32. FOREIGN KEY (type_id) REFERENCES atbl_art_type(id),
  33. FOREIGN KEY (metadata_id) REFERENCES tbl_metadatum(id) ON DELETE CASCADE
  34. );