首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持股票拆分/合并的股票组合数据库设计

支持股票拆分/合并的股票组合数据库设计
EN

Stack Overflow用户
提问于 2015-04-08 11:06:26
回答 2查看 1.6K关注 0票数 2

我目前正在创建一个web应用程序来管理我的股票投资组合,但是当涉及到交易表时,我有一些问题想问一下。

以下是我的股票交易表设计:

代码语言:javascript
复制
|   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),供用户在尝试创建新的交易记录时选择,我认为当股票拆分/合并时,这种方法可能会导致一些问题,因为我可能无法使用相同的符号再次检索股票价格。

我想知道我应该如何修改我的表,以支持股票拆分/合并的情况?

EN

回答 2

Stack Overflow用户

发布于 2017-11-08 10:13:55

股票拆分

代码语言:javascript
复制
... symbol type   shares ...
... AAPL   split  100    ...

两股换一股;100股变成了200股。

红利

代码语言:javascript
复制
symbol  type  amount
AAPL    div   20.00

Mergers

解决方法:将合并记录为出售或旧股票和新股票的购买。在“备注”栏中添加适当的备注。

一种更准确(但更复杂)的策略是重新设计整个数据库,以便每笔交易都是一笔交易换另一笔交易。“买入”交易的是现金换股票。“卖出”用股票换取现金。合并交易A股换B股。A拆分交易0股换100股,以此类推。现金只是另一个资产类别。

外国股票

所有主要的金融网站都解决了这个问题。symbol.exchange是唯一的id。不需要重新发明轮子并创建新的id列。

您还需要为外国股票添加一个货币列。

票数 1
EN

Stack Overflow用户

发布于 2015-04-08 11:48:14

在美国只有不到4000只股票。为什么不使用股票代码作为主键呢?你如何计划分红?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29505218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档