Advertisement
Guest User

Untitled

a guest
Dec 4th, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.92 KB | None | 0 0
  1. -- Table: trade
  2.  
  3. CREATE TABLE trade
  4. (
  5.   id bigserial NOT NULL,
  6.   time_executed TIMESTAMP WITH TIME zone NOT NULL,
  7.   time_booked TIMESTAMP WITH TIME zone NOT NULL,
  8.   id_book INTEGER NOT NULL,
  9.   id_book_counter INTEGER NOT NULL,
  10.   id_secdb BIGINT,
  11.   id_secdb_transaction INTEGER,
  12.   id_trader INTEGER NOT NULL,
  13.   id_tradelabel INTEGER NOT NULL,
  14.   id_external text,
  15.   CONSTRAINT cons_trade_primary_key PRIMARY KEY (id),
  16.   CONSTRAINT cons_trade_book FOREIGN KEY (id_book)
  17.       REFERENCES book (id) MATCH SIMPLE
  18.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  19.   CONSTRAINT cons_trade_book_counter FOREIGN KEY (id_book_counter)
  20.       REFERENCES book (id) MATCH SIMPLE
  21.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  22.   CONSTRAINT cons_trade_tl FOREIGN KEY (id_tradelabel)
  23.       REFERENCES tradelabel (id) MATCH SIMPLE
  24.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  25.   CONSTRAINT cons_trade_trader FOREIGN KEY (id_trader)
  26.       REFERENCES trader (id) MATCH SIMPLE
  27.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  28.   CONSTRAINT cons_tl_chk_books CHECK (id_book <> id_book_counter)
  29. )
  30. WITH (
  31.   OIDS=FALSE
  32. );
  33.  
  34.  
  35. CREATE INDEX idx_trade_id_book
  36.   ON trade
  37.   USING btree
  38.   (id_book, time_executed, id);
  39.  
  40. CREATE INDEX idx_trade_id_book_counter
  41.   ON trade
  42.   USING btree
  43.   (id_book_counter, time_executed, id);
  44.  
  45. CREATE INDEX idx_trade_id_external
  46.   ON trade
  47.   USING btree
  48.   (id_external COLLATE pg_catalog."default");
  49.  
  50. CREATE INDEX idx_trade_id_secdb
  51.   ON trade
  52.   USING btree
  53.   (id_secdb, id);
  54.  
  55. CREATE INDEX idx_trade_id_secdb_trx
  56.   ON trade
  57.   USING btree
  58.   (id_secdb_transaction, id);
  59.  
  60. CREATE INDEX idx_trade_id_tradelabel
  61.   ON trade
  62.   USING btree
  63.   (id_tradelabel, time_executed, id);
  64.  
  65. CREATE INDEX idx_trade_time_booked
  66.   ON trade
  67.   USING btree
  68.   (time_booked, id);
  69.  
  70. CREATE INDEX idx_trade_time_executed
  71.   ON trade
  72.   USING btree
  73.   (time_executed, id);
  74. ALTER TABLE trade CLUSTER ON idx_trade_time_executed;
  75.  
  76.  
  77. -- Table: position_effect
  78.  
  79. CREATE TABLE position_effect
  80. (
  81.   id bigserial NOT NULL,
  82.   id_trade BIGINT NOT NULL,
  83.   id_asset INTEGER NOT NULL,
  84.   quantity DOUBLE PRECISION NOT NULL,
  85.   CONSTRAINT cons_pe_primary_key PRIMARY KEY (id_trade, id_asset),
  86.   CONSTRAINT cons_pe_asset FOREIGN KEY (id_asset)
  87.       REFERENCES asset (id) MATCH SIMPLE
  88.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  89.   CONSTRAINT cons_pe_trade FOREIGN KEY (id_trade)
  90.       REFERENCES trade (id) MATCH SIMPLE
  91.       ON UPDATE NO ACTION ON DELETE NO ACTION,
  92.   CONSTRAINT cons_pe_unique_id UNIQUE (id)
  93.   WITH (FILLFACTOR=100)
  94. )
  95. WITH (
  96.   OIDS=FALSE
  97. );
  98. ALTER TABLE position_effect
  99.   OWNER TO procuser;
  100. GRANT ALL ON TABLE position_effect TO procuser;
  101. GRANT SELECT ON TABLE position_effect TO procuser_ro;
  102. GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES ON TABLE position_effect TO procuser_rw;
  103. GRANT ALL ON TABLE position_effect TO standard;
  104.  
  105.  
  106. CREATE INDEX idx_pe_id_asset
  107.   ON position_effect
  108.   USING btree
  109.   (id_asset, id_trade);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement