每日交付系统的数据库架构?

时间:2018-07-20 19:58:48

标签: database android-sqlite

我想设计一个数据库,让我的客户每天购买不同数量的任何乳制品(牛奶,凝乳,奶酪),但要在月底付款。

我无法存储正确的数据库架构,因为我想存储特定产品每天的数量,因此客户可以购买多种类型的产品。

那么,前进的方向应该是什么?

编辑:我的模式

客户:
-客户编号
-名称
-唯一的手机号码
-地址
-每日数量(仅供参考。在交易过程中它可能会增加或                 根据要求减少)

产品
-产品ID
-名称
-单价

交易表
-客户ID(外键)
-产品ID(外键)
-数量
-日期

现在,我想通过合并他在一个月内购买的所有不同商品,为每个客户生成每月账单。那么,此交易表是这样做的最佳方法吗?

1 个答案:

答案 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 ?