29 lines
No EOL
925 B
SQL
29 lines
No EOL
925 B
SQL
create table users (
|
|
id uuid primary key,
|
|
login text not null
|
|
);
|
|
|
|
create type status as enum ('active', 'offline', 'busy');
|
|
|
|
create table stations (
|
|
id uuid primary key,
|
|
slug text not null,
|
|
status status not null
|
|
);
|
|
|
|
create table satellites (
|
|
id uuid primary key,
|
|
display_name text not null,
|
|
status status not null
|
|
);
|
|
|
|
create table subscriptions (
|
|
id uuid primary key,
|
|
user_id uuid not null references users(id),
|
|
station_id uuid null references satellites(id),
|
|
satellite_id uuid null references stations(id),
|
|
created_at timestamp not null,
|
|
updated_at timestamp not null,
|
|
|
|
check (station_id is not null or satellite_id is not null)
|
|
); |