我想设计一个数据库,让我的客户每天购买不同数量的任何乳制品(牛奶,凝乳,奶酪),但要在月底付款。
我无法存储正确的数据库架构,因为我想存储特定产品每天的数量,因此客户可以购买多种类型的产品。
那么,前进的方向应该是什么?
编辑:我的模式
客户:
-客户编号
-名称
-唯一的手机号码
-地址
-每日数量(仅供参考。在交易过程中它可能会增加或
根据要求减少)
产品:
-产品ID
-名称
-单价
交易表
-客户ID(外键)
-产品ID(外键)
-数量
-日期
现在,我想通过合并他在一个月内购买的所有不同商品,为每个客户生成每月账单。那么,此交易表是这样做的最佳方法吗?
答案 0 :(得分:0)
我添加了一张新表 Ticket ,因此白天购买的每个商品都属于唯一的 Ticket 。
通过这种方式,您可以返回到特定票证,并查看花了多少钱(这是因为价格可能会发生变化,并且一天之内有多张票证。)
<Ticket>
-Product id (foreign key)
-Quantity
-total
-Date
我已将您的“交易”表修改为仅具有票证与客户的关系。
<Transaction>
-customer_id (foreign key)
-ticket id (foreign key)
-Date
一些SQL示例
SELECT Tr.customer_id, MONTH(tr.Date), SUM(ti.total)
FROM Transaction tr, Ticket ti
WHERE tr.ticket_id = ti.id
GROUP BY MONTH(tr.Date)
WHERE Tr.customer_id = ? AND tr.Date BETWEEN ? AND ?