正在考虑开发一款用于在线咨询和管理患者的应用程序。有 3 种交易类型。1- 用户/医生可以取款,或将钱存入钱包 2- 用户可以支付在线咨询费用。3-医生可以为其帐户付费(帐户有不同的计划)。
现在我想设计一个交易表,用于在付款后保存详细信息。我是否应该为所有这些使用相同的表,并创建诸如 transaction_type 和 transaction_user_type 之类的列来了解谁付款了(医生或用户)并了解它是什么交易(用于咨询、钱包或帐户)?或者我应该为这些使用不同的表格?
正在考虑开发一款用于在线咨询和管理患者的应用程序。有 3 种交易类型。1- 用户/医生可以取款,或将钱存入钱包 2- 用户可以支付在线咨询费用。3-医生可以为其帐户付费(帐户有不同的计划)。
现在我想设计一个交易表,用于在付款后保存详细信息。我是否应该为所有这些使用相同的表,并创建诸如 transaction_type 和 transaction_user_type 之类的列来了解谁付款了(医生或用户)并了解它是什么交易(用于咨询、钱包或帐户)?或者我应该为这些使用不同的表格?
您应该有一张交易表。这将使制作财务报告和统计数据变得更加容易。
不要忘记有要处理的字段
我通过存储负数而不是正数来处理退款。需要注意的是,数量和总价可以为负值,但单价不能为负值。否则,两个负数相乘得到一个正数。在一个项目中,我放置了一个字段(一个标志)来指示退款。它只是有助于在报告中区分统计数据的退款。
从OOP/OOD的角度来看。一些属性对于所有交易类型来说都是通用的,而一些属性则是特定的。
因此,您可以采用混合方法:
但是,不要在数据库中过度执行 OOP 操作。例如,避免多层次的继承。这种混合方法使事情仍然相对简单,同时允许您轻松扩展不同的交易类型,并且几乎没有缺点。
至于性能 - 不用担心。有一些方法可以避免锁定问题。我们有许多 TB 大小的数据库都使用这种方法。