49 lines
1.1 KiB
MySQL
49 lines
1.1 KiB
MySQL
drop table metadata;
|
|
|
|
create table metadata(
|
|
name varchar(50),
|
|
comment varchar(200),
|
|
private_key varchar(500),
|
|
public_key varchar(500)
|
|
);
|
|
|
|
insert into metadata default vALUES;
|
|
|
|
drop table entity cascade;
|
|
|
|
create table entity(
|
|
id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
creation_ts TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
creator INT REFERENCES entity(id),
|
|
name varchar(100) NOT NULL,
|
|
group_p BOOLEAN NOT NULL,
|
|
geo_offset BIGINT,
|
|
--private_key VARCHAR(300) NOT NULL,
|
|
public_key VARCHAR(300) NOT NULL,
|
|
expiration DATE,
|
|
status VARCHAR(10) NOT NULL DEFAULT 'active'
|
|
|
|
|
|
);
|
|
|
|
CREATE INDEX idx_entity_name ON entity(name);
|
|
|
|
drop table group_member;
|
|
|
|
create table group_member(
|
|
group_id INT NOT NULL REFERENCES entity(id) ON DELETE CASCADE,
|
|
person_id INT NOT NULL REFERENCES entity(id) ON DELETE CASCADE,
|
|
role VARCHAR(10),
|
|
PRIMARY KEY (group_id,person_id)
|
|
);
|
|
|
|
CREATE INDEX idx_group_member_person_group ON group_member(person_id, group_id);
|
|
|
|
drop table property;
|
|
|
|
create table property(
|
|
id INT NOT NULL REFERENCES entity(id) ON DELETE CASCADE,
|
|
property_name VARCHAR(100),
|
|
PRIMARY KEY (id, property_name)
|
|
);
|