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)
假设已经有一个用户表,每个用户有一个唯一ID。我们需要创建两张表,一张余额表,一张流水表:CREATE TABLE `balance` ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `user_id` int NOT NULL, `item` varchar(10) NOT NULL, `balance` decimal(20,2) NOT NULL) ENGINE=InnoDBCREATE TABLE `history` ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `user_id` int NOT NULL, `item` varchar(10) NOT NULL, `amount` decimal(20,2) NOT NULL, `befor` decimal(20,2) NOT NULL, `after` decimal(20,2) NOT NULL, `business` varchar(30) NOT NULL, `business_id` varchar(100) NOT NULL, `detail` text) ENGINE=InnoDB
为了加快查询速度,另外为了有效利用 InnoDB 的行级锁,我们需要给两张表加上联合索引。另外,我们需要保证流水记录中 user_id, item, business, business_id 的组合是唯一的,避免重复更新数据。
ALTER TABLE balance ADD INDEX `user_item_idx` (`user_id`, `item`)ALTER TABLE history ADD INDEX `user_item_idx` (`user_id`, `item`)ALTER TABLE history ADD UNIQUE update_unique (user_id, item, business, business_id)
以下是全套:EXCEL财务报表(带公式)的下载全套EXCEL财务报表,包括适用于各行业的:凭证、总账、分类明细账(三拦和
有收入、支出、余额、应收款、应付款多栏)、科目账、T型账(丁字帐)、资产负债表(资产表)、利润表(损益表)、现金流量表、丁字帐(T型帐)、各行资产经营财务表格等等。带全套公式,只要把基本数据填写了,将自动生成汇总数据和相关数据,最大程度减少财务制表工作量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)