diff options
Diffstat (limited to 'sql/serenitasdb.sql')
| -rw-r--r-- | sql/serenitasdb.sql | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/sql/serenitasdb.sql b/sql/serenitasdb.sql index afa9e575..58c388aa 100644 --- a/sql/serenitasdb.sql +++ b/sql/serenitasdb.sql @@ -706,10 +706,8 @@ CREATE TABLE swaption_lognormal_vol( PRIMARY KEY(date, source));
CREATE TABLE swaption_quotes(
- quotedate timestamptz,
- index index_type,
- series smallint,
- expiry date,
+ quote_id SERIAL PRIMARY KEY,
+ ref_id integer REFERENCES swaption_ref_quotes,
strike float,
delta_pay float,
delta_rec float,
@@ -720,12 +718,13 @@ CREATE TABLE swaption_quotes( vol float,
price_vol float,
gamma float,
- tail float,
- quote_source varchar(4),
- PRIMARY KEY(quotedate, index, series, expiry, strike),
- FOREIGN KEY(quotedate, index, series, expiry) REFERENCES swaption_ref_quotes);
+ tail float);
+
+ALTER TABLE swaption_quotes ADD CONSTRAINT swaption_quotes_unique_ref_id_strike
+UNIQUE (ref_id, strike);
CREATE TABLE swaption_ref_quotes(
+ ref_id serial PRIMARY KEY,
quotedate timestamptz,
index index_type,
series smallint,
@@ -734,16 +733,15 @@ CREATE TABLE swaption_ref_quotes( fwdprice float,
fwdspread float,
fwdbpv float,
- PRIMARY KEY(quotedate, index, series, expiry));
+ quote_source varchar(4));
+
+CREATE INDEX ON swaption_ref_quotes (quotedate, index, series);
+ALTER TABLE swaption_ref_quotes ADD CONSTRAINT swaption_ref_quotes_unique_quotedate_index_series_expiry
+UNIQUE (quotedate, index, series, expiry);
CREATE TABLE swaption_calib(
- quotedate timestamptz,
- index index_type,
- series smallint,
- expiry date,
- strike float,
+ quote_id integer PRIMARY KEY REFERENCES swaption_quotes,
vol_payer float,
- vol_receiver float
+ vol_receiver float,
vol_payer_black float,
- vol_receiver_black float,
- PRIMARY KEY(quotedate, index, series, expiry, strike));
+ vol_receiver_black float);
|
