Pet*_*ron 4 sql-server asp.net-mvc database-design online-store
我需要一种优雅的方式来为在线商店实现基于信用的购买,该商店提供少量产品,可以使用虚拟信用或真实货币进行购买。或者,产品只能以积分定价。
Credit在使用不同的产品类型(例如、Voucher或)之前,我已经实施了基于信用的采购,Music并通过订单后处理将购买的信用以实际货币的形式分配给用户,随后可以用于折扣未来订单的费用总额。
作为一个临时解决方案,这相当有效,但没有成功地将虚拟货币与真实货币分开,这正是我想做的,因为对于客户来说,消费积分在心理上比消费真实货币更容易。
我需要正确设计数据库的指导,并支持同时以折扣价批量购买积分和真实货币产品。或者,是否应该所有产品都以积分定价,并且只有积分具有实际货币价值?
部分Products表:
部分Orders表:
Users,未显示)部分OrderItems表(类似于CartItems表):
Orders)Products)预期UserCredits表:
Users,未显示)我在 SQL Server 数据库上使用 ASP.NET MVC 和 LINQ-to-SQL。
您不会用积分向供应商付款,因此从内部会计角度来看,最好仅针对您的产品持有硬现金价值(美元、英镑等)。
向网站用户展示时,您需要一个货币换算表,将硬价格转换为优惠券。将数据模型与前端显示分离是一个关键的设计策略。无论您决定显示真实现金价格和虚拟信用价格,还是仅显示信用评估,都应该与数据在数据库中的存储方式无关。