首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >故意对事务表进行去bad是否是一种糟糕的做法?

故意对事务表进行去bad是否是一种糟糕的做法?
EN

Database Administration用户
提问于 2022-06-06 16:16:23
回答 1查看 46关注 0票数 1

我是一个刚毕业的毕业生,很少有数据库设计经验。

想象一下网上赌博数据库。我在用复式簿记做模特。用户可以放置赌注,支付的收益,损失,或可能被取消。押注基本上是待决交易。在确认了投注结果后,我们在事务表中添加行、类型为Credit和Debit的行。

但是,我也希望在transactions表中包括类型为“存款”和“取款”的行。

事务处理表中与Wager相关的行将需要Wager的外键。

交易表中与存款/提款相关的行将需要外键作为支付处理信息,也可能需要退款信息。

我认为保持帐户余额变化的单一交易表是好的,所以我不想分割存款/借方的存款/借方。

在这种情况下,是否可以在设计事务表时知道每一行中都有3-5的空列?或者你会做一个不同的解决方案?

谢谢你的建议。

EN

回答 1

Database Administration用户

发布于 2022-06-07 04:41:34

把所有东西都放在一张桌子上会变得很笨拙。取而代之的是两张主桌。

  • 每个帐户都有个别变更--存款/提款。
  • 一份有账户余额。

两者都不是“交易”。事务是第二个表中的第一行到第一个INSERTing和第一个UPDATEing行的组合。在谈到数据库时,请使用“事务”一词仅指它在这种情况下的特殊含义。

第二个表可以从第一个表中派生出来,但这比确保它们保持同步不太实际。BEGIN...COMMIT (围绕数据库事务中的SQL )在这方面提供了帮助。

FOREIGN KEYs主要是一种数据完整性检查.你的措辞让它们听起来更重要。忘掉FKs (目前),专注于需要执行哪些插入/更新/etc。

未完成的赌注可能需要放在第三张桌子上。而且,当投注结束时,可能会删除赌注行(或标记为已完成)。

同样,在进行上述其他更改时,对赌表的更改需要成为数据库事务的一部分。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/313011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档