03U*_*Usr 5 c# sql database-design design-patterns sql-server-2008-r2
我们有一个结算系统,我们处理个人费用以及经常性费用(订阅).
有两个SQL表:
StandardCharges
RecurringCharges
Run Code Online (Sandbox Code Playgroud)
StandardCharges表包含客户在本月购买的单个商品.
RecurringCharges表保存按日期收费的定期项目.到时候,我们的系统会自动创建一个recur请求,该请求会向StandardCharges表添加一行,并在RecurringCharges表中按日期将费用增加到下个月.
在每个月末,我们从StandardCharges表中获取每个客户的总价值并创建发票.
是否有某种设计模式或其他方式?这是正确的数据库设计吗?理想情况下,我想在一张Charges
桌子上收取所有费用,并从那里管理经常性费用?
谢谢
我怀疑你的设计确实是正确的。
当从现实世界的角度思考数据时,将“可能”交易(即尚未发生且可能不会实现的交易,可能是因为客户超出了信用额度)与已承诺交易和实际交易混合在一起是没有意义的。
将数据合并到单个表中也会使报告变得困难,因为您必须应用特殊的过滤条件并存储额外的元数据 - 例如 TransactionCompleted 和 TransactionIsFutureCharge。
如果我要提出建议,它将重命名为StandardCharges
更接近它所保存的数据的名称,例如CompletedTransactions
和。RecurringTransactions
PendingTransactions
归档时间: |
|
查看次数: |
1063 次 |
最近记录: |