65 lines
1.3 KiB
SQL
65 lines
1.3 KiB
SQL
create table blob (
|
|
blob_id integer primary key autoincrement,
|
|
data blob not null,
|
|
content_type text not null,
|
|
|
|
created_timestamp text not null
|
|
) strict;
|
|
|
|
create table shelf (
|
|
shelf_id integer primary key autoincrement,
|
|
shelf_xid text not null unique,
|
|
|
|
name text not null,
|
|
|
|
created_timestamp text not null
|
|
) strict;
|
|
|
|
create table item (
|
|
item_id integer primary key autoincrement,
|
|
item_xid text not null unique,
|
|
|
|
item_type text not null,
|
|
name text not null,
|
|
image_blob_id integer,
|
|
|
|
started_timestamp text,
|
|
finished_timestamp text,
|
|
|
|
rating real,
|
|
review text not null,
|
|
|
|
other_metadata_json text,
|
|
|
|
foreign key (image_blob_id) references blob(blob_id)
|
|
) strict;
|
|
|
|
create table shelf_item (
|
|
shelf_item_id integer primary key,
|
|
|
|
item_id integer not null,
|
|
collection_id integer not null,
|
|
|
|
foreign key (item_id) references item(item_id),
|
|
foreign key (collection_id) references collection(collection_id),
|
|
unique (item_id, collection_id)
|
|
) strict;
|
|
|
|
create table shelf_arrangement (
|
|
shelf_arrangement_id integer primary key,
|
|
shelf_arrangement_xid text not null unique,
|
|
|
|
name text not null,
|
|
|
|
collection_id integer not null,
|
|
shelf_arrangement_json_blob text not null,
|
|
|
|
foreign key (collection_id) references collection(collection_id)
|
|
) strict;
|
|
|
|
create table activity (
|
|
activity_id integer primary key,
|
|
|
|
activity_json_blob text not null
|
|
) strict;
|