Skip to content

Commit a536327

Browse files
committed
fixed some foreign key errors in schema
confirmed errors with Oracle SQLdeveloper
1 parent c1d260f commit a536327

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

remake_all.sql.orig

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
DROP TABLE calculate_statistics;
2+
DROP TABLE create_strategy;
3+
DROP TABLE criteria;
4+
DROP TABLE day_to_day;
5+
DROP TABLE indicator_reference;
6+
DROP TABLE makes_trade;
7+
DROP TABLE portfolio_contents;
8+
DROP TABLE raw_data_parsing;
9+
DROP TABLE aggregate_portfolio;
10+
DROP TABLE indicator;
11+
DROP TABLE portfolio_statistics;
12+
DROP TABLE query_data;
13+
DROP TABLE security_state;
14+
DROP TABLE strategy;
15+
DROP TABLE trade;
16+
DROP TABLE user_data;
17+
CREATE TABLE aggregate_portfolio(
18+
portfolio_id INTEGER,
19+
time DATE, -- DD-MMM-YYYY
20+
portfolio_value NUMBER, -- current cash + value of securites in market
21+
interest_rate NUMBER, -- interest paid on the cash held
22+
securites_value NUMBER, -- value of all securites in portfolio
23+
free_cash NUMBER, -- cash not invested
24+
portfolio_value_change NUMBER, -- day to day change in value
25+
PRIMARY KEY (portfolio_id)
26+
);
27+
CREATE TABLE indicator(
28+
indicator_id INTEGER,
29+
security VARCHAR2(6),
30+
mva_10_day VARCHAR2(1), -- T or F --
31+
mva_25_day VARCHAR2(1), -- T or F --
32+
PRIMARY KEY (indicator_id)
33+
);
34+
35+
CREATE TABLE portfolio_statistics (
36+
port_id INTEGER,
37+
start_date DATE,
38+
end_date DATE,
39+
sharpe_ratio REAL,
40+
returns REAL,
41+
user_id VARCHAR(20),
42+
PRIMARY KEY(port_id)
43+
);
44+
CREATE TABLE query_data (
45+
security VARCHAR2(6),
46+
time DATE, -- DD-MMM-YYYY
47+
open NUMBER,
48+
high NUMBER,
49+
low NUMBER,
50+
close NUMBER,
51+
volume INTEGER,
52+
adj_close NUMBER,
53+
-- field_data char(10) changed to...
54+
mva_10_day NUMBER,
55+
mva_25_day NUMBER,
56+
PRIMARY KEY (security, time)
57+
);
58+
CREATE TABLE security_state (
59+
state_id INTEGER,
60+
security VARCHAR2(6),
61+
security_price NUMBER,
62+
share_amount NUMBER,
63+
PRIMARY KEY(state_id,security)
64+
);
65+
CREATE TABLE strategy(
66+
strategy_id INTEGER,
67+
strategy_name VARCHAR2(200),
68+
PRIMARY KEY (strategy_id)
69+
);
70+
CREATE TABLE trade (
71+
trade_id INTEGER,
72+
security VARCHAR2(6),
73+
action VARCHAR2(3), --'B'/'S'/'X_B'/'X_U'
74+
share_amount NUMBER, -- Shares purchased in this trade
75+
price NUMBER,
76+
time DATE,
77+
PRIMARY KEY(trade_id)
78+
);
79+
CREATE TABLE user_data(
80+
user_id VARCHAR2(20),
81+
password VARCHAR2(20),
82+
PRIMARY KEY (user_id)
83+
);
84+
CREATE TABLE calculate_statistics (
85+
port_id INTEGER,
86+
strategy_id INTEGER,
87+
PRIMARY KEY (port_id),
88+
FOREIGN KEY (strategy_id) REFERENCES strategy,
89+
FOREIGN KEY (port_id) REFERENCES portfolio_statistics
90+
);
91+
CREATE TABLE create_strategy (
92+
user_id VARCHAR2(20),
93+
strategy_id INTEGER,
94+
PRIMARY KEY (user_id, strategy_id ),
95+
FOREIGN KEY (user_id) REFERENCES user_data,
96+
FOREIGN KEY (strategy_id) REFERENCES strategy
97+
);
98+
CREATE TABLE criteria (
99+
strategy_id INTEGER,
100+
indicator_id INTEGER,
101+
PRIMARY KEY (strategy_id, indicator_id),
102+
FOREIGN KEY (strategy_id) REFERENCES strategy,
103+
FOREIGN KEY (indicator_id) REFERENCES indicator
104+
);
105+
CREATE TABLE day_to_day (
106+
strategy_id INTEGER,
107+
portfolio_id INTEGER,
108+
PRIMARY KEY (strategy_id, portfolio_id),
109+
FOREIGN KEY (strategy_id) REFERENCES strategy,
110+
FOREIGN KEY (portfolio_id) REFERENCES current_portfolio
111+
);
112+
CREATE TABLE indicator_reference(
113+
start_time DATE, -- DD-MMM-YYYY
114+
end_time DATE, -- DD-MMM-YYYY
115+
L_indicator_id INTEGER,
116+
R_indicator_id INTEGER,
117+
buy_sell CHAR(1), --'B' or 'S'
118+
operator VARCHAR2(10),
119+
action_security VARCHAR2(6),
120+
share_amount INTEGER, --NULL
121+
allocation NUMBER, --100
122+
cash_value NUMBER, -- Starting cash amt
123+
PRIMARY KEY (L_indicator_id,R_indicator_id,buy_sell),
124+
FOREIGN KEY (L_indicator_id) REFERENCES indicator,
125+
FOREIGN KEY (R_indicator_id) REFERENCES indicator
126+
);
127+
128+
CREATE TABLE makes_trade (
129+
portfolio_id INTEGER,
130+
trade_id INTEGER,
131+
PRIMARY KEY(portfolio_id,trade_id),
132+
FOREIGN KEY (trade_id) REFERENCES trade,
133+
FOREIGN KEY (portfolio_id) REFERENCES current_portfolio
134+
);
135+
CREATE TABLE portfolio_contents (
136+
state_id INTEGER,
137+
portfolio_id INTEGER,
138+
security VARCHAR2(6),
139+
PRIMARY KEY (state_id, portfolio_id),
140+
FOREIGN KEY (state_id,security) REFERENCES security_state,
141+
FOREIGN KEY (portfolio_id) REFERENCES aggregate_portfolio
142+
);
143+
CREATE TABLE raw_data_parsing (
144+
strategy_id INTEGER,
145+
security VARCHAR2(6),
146+
time DATE,
147+
PRIMARY KEY (strategy_id, security,time),
148+
FOREIGN KEY (strategy_id) REFERENCES strategy,
149+
FOREIGN KEY (security, time) REFERENCES query_data
150+
);

0 commit comments

Comments
 (0)