支付系统的数据库表设计

浏览:7936 发布日期:2017/12/19 分类:业务逻辑
支付系统的数据库表设计实现
可扩展性的设计,表应该是通用的。

抽象后
第一个表:银行表,即对接各个支付方式的表,里边存储的是银行支付返回的实际金额,此表可通用任何类型的系统
第二个表:真正的和开发的系统相关的表。例如商品订单表之类.这样拆分后,所有支付接口只对接一次就可以了。其他系统用时不用改。
当发生支付时,用事务同时写入两个表!
--这个不适合千万级订单,这个我也有方案但很复杂,一般用不到。
----下边是sql,业务逻辑代码怎么写,一时半会说不明白,不会的,可以看我以前的文章,我告诉你怎么搞。
CREATE TABLE `pin_order_bank` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) DEFAULT 0 COMMENT '用户uid',
`tableflag` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '业务表名',
`pid` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '业务表id',
`bankpostid` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '提交给银行的订单编号',
`bankretid` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '银行返回的订单编号',
`pay_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '支付类型',
`pay_amount` int(11) DEFAULT 0 COMMENT '支付金额分',
`pay_status` int(11) DEFAULT 0 COMMENT '支付状态',
`pay_time` int(11) DEFAULT 0 COMMENT '支付时间',
`ext` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '扩展信息',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

评论( 相关
后面还有条评论,点击查看>>