-- 账户表 CREATE TABLE account ( a_id SERIAL PRIMARY KEY, --账户号 meta JSONB -- 元数据 ); -- {"name":"name", -- "balance": 0.00, -- “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, -- 流水号 c_id INTEGER REFERENCES category(c_id), -- 关联账户号 a_id INTEGER REFERENCES account(a_id), -- 关联类别号 meta JSONB -- 元数据 ); -- {"discription":"something",(可选) -- "type":"in"/"out"/"transfer", -- "transfer_dist":a_id,(可选) -- "reimburse":{ (报销) -- "finish": true, -- "ref":t_id -- } -- "":"something"} -- 转账表 记录转账信息 CREATE TABLE account_transaction( at_id SERIAL PRIMARY KEY, -- 转账号 src INTEGER REFERENCES category(c_id), -- 源账户号 dst INTEGER REFERENCES category(c_id), -- 目的账户号 meta JSONB -- 元数据 );