mysql 帐号余额和消费记录表设计?

有两张表: 用户信息表 user 和消费记录表 balance
请问下面哪种方式更好?
1: 把余额字段设计到 user 表中 每次产生一条消费记录的同时更新这个字段。
2: 把余额直接记录到 balance 表中 每次产生一条消费记录同时更新这个字段。最后那行可以获取剩余的余额。

余额可以单独用一个余额记录表,这样如果要查询每次消费记录的时候,也能查出来每次消费后还有多少余额。余额记录表里面主要是三个字段:用户账号、每次消费后的余额、时间点。
CREATE TABLE account
(
id integer NOT NULL DEFAULT nextval('trade_id_seq'::regclass),
no character varying(10) NOT NULL, -- 账号
balance money NOT NULL DEFAULT 0.00, -- 余额
datetime timestamp without time zone NOT NULL DEFAULT (now())::timestamp(0) without time zone,
CONSTRAINT account_pkey PRIMARY KEY (id)
)
通过每次的余额变化就知道每次消费后的余额情况
select acc.*, (select sum(balance)+acc.balance from account as ac where ac.id < acc.id) as profit from account as acc;

id | no | balance | datetime | profit
----+------+----------+---------------------+---------
1 | 1000 | $0.00 | 2013-10-09 10:51:10 |
2 | 1000 | $12.60 | 2013-10-09 10:51:22 | $12.60
4 | 1000 | $16.80 | 2013-10-09 10:51:42 | $29.40
5 | 1000 | $100.00 | 2013-10-09 10:51:49 | $129.40
6 | 1000 | $200.00 | 2013-10-09 10:56:35 | $329.40
7 | 1000 | $50.45 | 2013-10-09 10:57:23 | $379.85
8 | 1000 | $75.50 | 2013-10-09 10:57:31 | $455.35
9 | 1000 | -$55.30 | 2013-10-09 10:59:28 | $400.05
10 | 1000 | -$200.00 | 2013-10-09 10:59:44 | $200.05
(9 rows)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-23
通过专业的人士实际上帮你调节一下就可以完成的。
第2个回答  2020-01-23
我觉得第一个好, 毕竟余额是用户的属性~,消费记录是消费记录,关联一下就好了本回答被提问者采纳
第3个回答  2020-01-23
张浩有和消费记录表是的,这个得找专业人员给你设计

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网