50 lines
1.5 KiB
SQL
50 lines
1.5 KiB
SQL
drop table if exists trades;
|
|
create table trades
|
|
(
|
|
trade_id bigserial,
|
|
account_id text not null,
|
|
bought_at timestamp default current_timestamp,
|
|
figi text not null,
|
|
ticker text not null,
|
|
price decimal not null,
|
|
count decimal not null,
|
|
count_lots decimal not null,
|
|
archive_status int not null default 0,
|
|
direction int not null default 1,
|
|
position_type int not null default 1,
|
|
asset_type int not null default 1,
|
|
primary key (trade_id,archive_status)
|
|
) partition by list (archive_status);
|
|
|
|
create table assets_active partition of trades for values in (0);
|
|
create table assets_archive partition of trades for values in (1);
|
|
|
|
CREATE INDEX assets_account_id_index ON trades USING btree(account_id);
|
|
CREATE INDEX assets_figi_index ON trades USING btree(figi);
|
|
drop table if exists price_changes;
|
|
create table price_changes
|
|
(
|
|
id bigserial,
|
|
time timestamp default current_timestamp,
|
|
figi text not null,
|
|
ticker text not null,
|
|
value decimal not null,
|
|
primary key (id)
|
|
);
|
|
|
|
CREATE INDEX price_changes_figi_index ON price_changes USING btree(figi, time);
|
|
drop table if exists declisions;
|
|
create table declisions
|
|
(
|
|
id bigserial,
|
|
time timestamp default current_timestamp,
|
|
figi text not null,
|
|
price decimal not null,
|
|
ticker text not null,
|
|
account_id text not null,
|
|
action int not null default 0,
|
|
primary key (id)
|
|
);
|
|
|
|
CREATE INDEX declisions_index ON declisions USING btree(figi, time);
|