假设用户能够
(1) use money to buy something (Money leaves wallet)
(2) sell something to earn money (Money enters wallet)
我希望跟踪交易并确保它们准确无误。我想到了两种方法
(A)使用三个不相交的表格进行跟踪
buys <userid, amount>
sells <userid, amount>
transaction <transactionid, userid, amount, type>
i.e.
insert <u1, 90> into buys trigger insert <t1, u1, 90, 'buy'>
for example
(B)从交易表中购买和销售商店transactionid
buys <userid, transactionid>
sells <userid, transactionid>
transaction <transactionid, amount>
i.e.
insert <t1, 90> into transaction and insert <u1, t1> into buys
我的问题是方法(A)和方法(B)的优缺点是什么?那里有哪些替代方法/最佳实践?
答案 0 :(得分:0)
你可以这样做:
这样,您可以从一个查询中获得买方和卖方,而不是两个表。如果您需要跟踪报价和付费价格,它们只是交易表中的额外字段。
因此,事务表中的任何数据都会进入事务表,与所涉及的用户相关的任何数据都会进入链接表。
我将实体(用户,事务)视为单独的表,并将操作视为实体之间的链接表。