我有一个数据库,在这里需要将“余额和付款”分解为不同的“钱桶”,以显示它们的分配方式。例如,有本金,利息,滞纳金,退票费,杂项等。最多有10个不同的钱桶。

这两种方法中的哪一种是为此设计数据库的更好方法,为什么?

选项A

PAYMENTS
AccountId
// Other payment-related columns
TotalPaid
PrincipalPaid
InterestPaid
MiscPaid
BadCheckChargesPaid
...

选项B
PAYMENTS
AccountId
// Other payment-related columns
TotalPaid

PAYMENT_DETAILS
PaymentId
PaymentTypeId
AmountPaid

在大多数情况下,仅使用1-3种不同的余额类型

最佳答案

选项B是规范化程度更高,更灵活的选项(以后可以轻松添加新存储桶),并且可以赢得我的投票。

08-16 23:46