Repository navigation
Expand file tree
/
Copy pathFinancial-Portfolio-Management.sql
More file actions
66 lines (60 loc) · 2.39 KB
/
Copy pathFinancial-Portfolio-Management.sql
File metadata and controls
66 lines (60 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
-- Financial Portfolio Management Database
-- Description: Schema for tracking investment portfolios.
-- Tables included:
-- - Investors: Stores investor information.
-- - Assets: Lists available financial assets (e.g., stocks, bonds).
-- - Portfolios: Each investor's portfolio.
-- - Portfolio_Holdings: The holdings in each portfolio.
-- - Trades: Records of trades (buy/sell operations).
-- - Market_Data: Historical market data for assets.
CREATE TABLE Investors (
investor_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
registration_date DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Assets (
asset_id INT AUTO_INCREMENT PRIMARY KEY,
symbol VARCHAR(10) NOT NULL UNIQUE,
name VARCHAR(150),
asset_type VARCHAR(50) -- e.g., stock, bond
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Portfolios (
portfolio_id INT AUTO_INCREMENT PRIMARY KEY,
investor_id INT,
portfolio_name VARCHAR(150) NOT NULL,
creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (investor_id) REFERENCES Investors(investor_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Portfolio_Holdings (
holding_id INT AUTO_INCREMENT PRIMARY KEY,
portfolio_id INT,
asset_id INT,
quantity DECIMAL(15,4),
average_cost DECIMAL(15,4),
FOREIGN KEY (portfolio_id) REFERENCES Portfolios(portfolio_id) ON DELETE CASCADE,
FOREIGN KEY (asset_id) REFERENCES Assets(asset_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Trades (
trade_id INT AUTO_INCREMENT PRIMARY KEY,
portfolio_id INT,
asset_id INT,
trade_date DATETIME DEFAULT CURRENT_TIMESTAMP,
price DECIMAL(15,4),
quantity DECIMAL(15,4),
trade_type ENUM('buy', 'sell'),
FOREIGN KEY (portfolio_id) REFERENCES Portfolios(portfolio_id) ON DELETE CASCADE,
FOREIGN KEY (asset_id) REFERENCES Assets(asset_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE Market_Data (
market_data_id INT AUTO_INCREMENT PRIMARY KEY,
asset_id INT,
data_date DATE,
open DECIMAL(15,4),
close DECIMAL(15,4),
high DECIMAL(15,4),
low DECIMAL(15,4),
volume BIGINT,
FOREIGN KEY (asset_id) REFERENCES Assets(asset_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;