storage-common/pgsql/graph/tables.sql

23 lines
901 B
SQL

-- storage-common/qgsql/graph/tables.sql
-- a simple generic RDF-like graph storage using only one tabel
create sequence steps_id_seq start with 11;
-- note: bootstrap rows get explicit IDs
create table steps (
id bigint not null primary key default nextval('steps_id_seq'),
item bigint not null,
property bigint not null references steps,
valtype smallint not null check (valtype in (0, 1, 2, 3)),
-- 0 = Nothing, 1 = Text, 2 = Number, 3 = Step
numval bigint, -- null except for valtype 2 and 3
strval text -- null except for valtype 1
);
-- indexes
create index idx_ipv on steps USING btree (item, property, valtype, numval, strval);
create index idx_pv on steps using btree (property, valtype, numval, strval);
-- optional, not used (values make only sense together with a property):
--create index idx_vi on steps using btree (valtype, numval, strval, item);