我目前正在创建一个网络应用程序来管理我的股票投资组合,但是当涉及到交易表时,我有一些问题我想问。
以下是我的股票交易表设计:
| 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)供用户在尝试创建新的交易记录时选择,我认为这种方法可能会在股票分割/合并时产生一些问题,因为我可能不会能够使用相同的符号再次检索股票价格。
我想知道如何修改我的表格,以支持股票拆分/合并案例?
答案 0 :(得分:0)
美国的股票不到4000只。为什么不使用股票代码作为主键。您如何计划分红?
答案 1 :(得分:0)
股票拆分
... symbol type shares ...
... AAPL split 100 ...
2分为1分; 100股成为200股。
<强>股息强>
symbol type amount
AAPL div 20.00
<强>合并强>
解决方法:将合并记录为销售或旧库存以及购买新库存。在&#39;注释中添加适当的注释。列。
更准确(但更复杂)的策略是重新设计整个数据库,以便每笔交易实际上是另一笔交易。 A&#39;购买&#39;交易现金库存。 A&#39;出售&#39;交易股票换现金。合并交易股票A股票B.股票交易0股,100股,等等。现金只是另一种资产类别。
外国股票
所有主要的财务网站都有这个想法。 symbol.exchange是一个唯一的id。无需重新发明轮子并创建新的id列。
您还需要为外国股票添加货币列。