用户的几个关键的行为有 : 转入钱、转出钱、买入ETF、卖出ETF;
实践下来,最中重要的几块有:用户的账户流水、用户账户的总金额、用户的订单流水;买入|卖出操作会产生的有:
1、信息流->产生买|卖操作相关的ETF名称、操作的数量和价格的记录,通常称做订单;
2、用户的账户的资金会相应的增加会减少,相对应的产生订单现金流水;
CREATE TABLE `account` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '自增长Id',
`uid` INT(11) NOT NULL COMMENT '用户ID',
`totalAmtE2` INT(11) DEFAULT NULL COMMENT '当前账户总金额',
`availableAmtE2` INT(11) DEFAULT NULL COMMENT '剩余可用金额(开盘前出现委托单的时候,剩余可用金额要相应的减少)',
`state` SMALLINT(1) DEFAULT '1' COMMENT '0、无效 1、有效、2、状态废弃 3、状态待使用 4、已全部卖出',
`createTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户账户的总金额表'
CREATE TABLE `order` (
`orderId` INT(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
`uniqueId` varchar(100) NOT NULL DEFAULT '""' COMMENT 'uniqueId',
`etfId` INT(11) NOT NULL COMMENT '股票代码',
`contractNo` VARCHAR(100) NOT NULL COMMENT '合同号',
`reqAmount` INT(11) NOT NULL COMMENT '委托购买数量',
`validAmount` INT(11) NOT NULL COMMENT '有效的成交数量',
`reqPriceE2` INT(11) NOT NULL DEFAULT '0' COMMENT '委托价格',
`originPriceE2` INT(11) NOT NULL COMMENT '购买原始价格',
`orderPriceE2` INT(11) NOT NULL COMMENT '算入手续费后的购买价格',
`orderType` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '操作类型: 0、买|卖委托 1、已撤单 2、购买|卖出成功 3、已结算',
`opType` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '操作类型: 0、购买 1、卖出',
`createTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`orderTime` TIMESTAMP NULL DEFAULT NULL COMMENT '订单的生成时间',
`cancelTime` TIMESTAMP NULL DEFAULT NULL COMMENT '订单取消时间',
`lastUpdateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`orderId`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='订单表(ETF购买价格数量表)'
CREATE TABLE `order_bill` (
`billId` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长Id',
`uniqueId` varchar(100) NOT NULL COMMENT '每次买卖的uniqueId',
`uid` int(11) NOT NULL COMMENT '订单号',
`feeE2` int(11) NOT NULL DEFAULT '0' COMMENT '手续费',
`cashE2` int(11) NOT NULL COMMENT '剩余可用现金',
`changeAmtE2` int(11) NOT NULL COMMENT '每次变更的钱',
`beforeAmtE2` bigint(11) NOT NULL COMMENT '账户改变之前剩余的钱',
`afterAmtE2` bigint(11) NOT NULL COMMENT '账户改变之前剩余的钱',
`accountType` tinyint(1) NOT NULL DEFAULT '4' COMMENT '用户账号类型0-4',
`opType` tinyint(1) NOT NULL DEFAULT '4' COMMENT '0 买 1、卖 2、分拆|分红',
`state` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1、有效 0、无效',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`billId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单-账户资金流水'