Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 日常配送系统的数据库模式?_Database_Android Sqlite - Fatal编程技术网

Database 日常配送系统的数据库模式?

Database 日常配送系统的数据库模式?,database,android-sqlite,Database,Android Sqlite,我想设计一个数据库,让我的客户每天购买不同数量的任何乳制品(牛奶、凝乳、奶酪),但在月底付款 我无法找出正确的数据库模式,因为我想存储特定产品每天的数量,而客户可以购买多种类型的产品 那么,前进的道路应该是什么 编辑:我的模式 客户: -客户ID -名称 -手机号码唯一性 -地址 -每日数量(仅供参考,交易时可增加或减少) 根据需要减少) 产品: -产品Id -名称 -每单位价格 交易表 -客户id(外键) -产品id(外键) -数量 -日期 现在,我想通过合并每个客户在一个月内购买的所有不同物

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

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

那么,前进的道路应该是什么

编辑:我的模式

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

产品:
-产品Id
-名称
-每单位价格

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


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

我添加了一个新的表票据,这样每天购买的每个产品都属于一个独特的票据

通过这种方式,你可以回到一张特定的票上,看看花了多少钱(这是因为价格可能会发生变化,而且一天内有多张票)


顺便说一句,没有“一个正确的模式”。你能想出一个“不正确的”模式,仍然满足要求吗?塞尔吉奥图兰采夫第一次发布了一个查询,所以他不知道获得答案的最佳方法。谢谢“这个事务表会是最好的方法吗”-我不知道“最好”的部分,但看起来它确实应该工作。我自己也会这样开始。为什么不简单地在交易中存储另一个字段,即价格?看起来这个票据实体的提取没有任何作用。或者我遗漏了什么?一个事务如何描述一个参与者(客户机)和一个可事务处理的对象(票证)之间的动作。我想你可以给它加价,但你也可以用剩下的字段加价。当你这样做的时候,你会有一个巨大的耦合实体。从语义上说,确定交易有价格,问题是应该存储在交易本身或交易相关实体中?@OscarNevarez我没有想到未来的价格变化,但我认为Sergio的方法会更简单。谢谢
<Ticket>
-Product id (foreign key)
-Quantity
-total
-Date
<Transaction>
-customer_id (foreign key)
-ticket id (foreign key)
-Date
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 ?