我需要一种优雅的方式来实现基于信用的网上商店的购买,可以使用、虚拟信贷、或真正的货币购买少量产品。或者,产品只能以信用来定价。
以前的工作
在使用不同的产品类型之前,我已经实施了基于信用的采购(例如。Credit,Voucher或Music),通过订单后处理,以实际货币的形式将购买的信贷分配给用户,这可能随后被用来折现未来订单的总费用。
这作为一种临时解决方案效果不错,但并没有成功地将虚拟货币与真实货币分离,这正是我想要做的,因为消费信贷在心理上比消费真正货币更容易。
设计
我需要正确设计数据库的指导,同时支持以折扣的方式大量购买货款和真正的货币产品。或者,所有的产品都应该以信用定价,只有信用才有真正的货币价值吗?
现有数据库设计
部分Products表:
部分Orders表:
Users表相关,而不是shown))
部分OrderItems表(类似于CartItems表):
Orders table)Products table)有关)
预期UserCredits表:
Users表相关,而不是shown)我在Server数据库上使用了ASP.NET MVC和LINQ。
发布于 2010-03-30 12:20:57
您不支付您的供应商信用,所以从内部会计角度来说,最好是只持有硬现金价值(美元,UKP,其他)对您的产品。
当显示给您网站的用户时,您需要一个货币换算表,该表将硬价格转换为凭单。将数据模型与前端显示分离是一种关键的设计策略。无论您决定同时显示实际现金价格和虚拟信贷价格,还是仅仅显示信贷估值,都不应影响数据如何存储在数据库中。
发布于 2010-03-30 12:30:28
和你的会计/财务人员谈谈。信用,一旦给予,就像在双重核算中的任何金钱一样真实,确实,你没有用信用支付给你的供应商,但是你承诺为你必须用现金支付的信用交付货物。它应该所有的平衡在任何时候,并看到你的完整的财务状况,你应该能够得到这些信用在你的资产负债表。
试着从一开始就对账户和交易进行建模--以后连接到财务/会计软件会更容易,如果你能在双方都运行报告以实现协调,那总是很好的。
https://stackoverflow.com/questions/2544520
复制相似问题