首页 > 解决方案 > 每日交付系统的数据库模式?

问题描述

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

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

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

编辑:我的架构

客户:
-客户ID
-姓名 -
手机号码唯一 -
地址
-每日数量(仅供参考。交易过程中可根据需要增加或减少)

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

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

现在,我想通过组合他在一个月内购买的所有不同物品为每个客户生成每月账单。那么,这个事务表会是最好的方法吗?

标签: databaseandroid-sqlite

解决方案


我添加了一张新表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 ?

推荐阅读