50 lines
1.1 KiB
SQL
50 lines
1.1 KiB
SQL
-- 账户表
|
|
CREATE TABLE account (
|
|
a_id SERIAL PRIMARY KEY, -- 账户号
|
|
balance MONEY, -- 余额
|
|
meta JSONB -- 元数据
|
|
);
|
|
-- {"name":"name",
|
|
-- time:"2022-02-02",
|
|
-- “budget": [
|
|
-- {"time":"2022-02","value":20.32},
|
|
-- {"time":"2022-01","value":30.32}
|
|
-- ]
|
|
-- "discription":"something"}
|
|
|
|
-- 类别表
|
|
CREATE TABLE category (
|
|
c_id SERIAL PRIMARY KEY, -- 类别号
|
|
meta JSONB -- 元数据
|
|
);
|
|
-- {"name":"name",
|
|
-- "type":"in"/"out",
|
|
-- “budget": [
|
|
-- {"time":"2022-02","value":20.32},
|
|
-- {"time":"2022-01","value":30.32}
|
|
-- ]
|
|
-- "discription":"something"}
|
|
|
|
-- 流水表
|
|
CREATE TABLE transaction (
|
|
t_id SERIAL PRIMARY KEY, -- 流水号
|
|
a_id INTEGER REFERENCES account(a_id) NOT NULL, -- 关联账户号
|
|
c_id INTEGER REFERENCES category(c_id), -- 关联类别号
|
|
s_id INTEGER REFERENCES category(c_id), -- 源账户号
|
|
time TIMESTAMP,
|
|
amount MONEY,
|
|
meta JSONB -- 元数据
|
|
);
|
|
-- {"discription":"something",(可选)
|
|
-- "type":"in"/"out"/"transfer"/"init"/"modify",
|
|
|
|
-- "reimburse":{ (报销)
|
|
-- "finish": true,
|
|
-- "ref":t_id
|
|
-- }
|
|
-- "":"something"}
|
|
|
|
|
|
|
|
|
|
|