我目前正在创建一个web应用程序来管理我的股票投资组合,但是当涉及到交易表时,我有一些问题想问一下。
以下是我的股票交易表设计:
| column name | datatype |
|----------------|----------------------|
| id | int(10) | primary key, auto increment
| portfolio_id | int(10) | reference to portfolio table primary key
| symbol | varchar(20) | stock symbol e.g: YHOO, GOOG
| type | ENUM('buy','sell') |
| tx_date | DATE |
| price | DOUBLE(15,2) |
| volume | int(20) |
| commission | DOUBLE(15,2) |
| created_at | TIMESTAMP |
| updated_at | TIMESTAMP |在我目前的设计中,我没有额外的表来存储股票代码。我生成了一个股票符号列表(使用一些股票api),供用户在尝试创建新的交易记录时选择,我认为当股票拆分/合并时,这种方法可能会导致一些问题,因为我可能无法使用相同的符号再次检索股票价格。
我想知道我应该如何修改我的表,以支持股票拆分/合并的情况?
发布于 2017-11-08 10:13:55
股票拆分
... symbol type shares ...
... AAPL split 100 ...两股换一股;100股变成了200股。
红利
symbol type amount
AAPL div 20.00Mergers
解决方法:将合并记录为出售或旧股票和新股票的购买。在“备注”栏中添加适当的备注。
一种更准确(但更复杂)的策略是重新设计整个数据库,以便每笔交易都是一笔交易换另一笔交易。“买入”交易的是现金换股票。“卖出”用股票换取现金。合并交易A股换B股。A拆分交易0股换100股,以此类推。现金只是另一个资产类别。
外国股票
所有主要的金融网站都解决了这个问题。symbol.exchange是唯一的id。不需要重新发明轮子并创建新的id列。
您还需要为外国股票添加一个货币列。
发布于 2015-04-08 11:48:14
在美国只有不到4000只股票。为什么不使用股票代码作为主键呢?你如何计划分红?
https://stackoverflow.com/questions/29505218
复制相似问题