【发布时间】:2021-07-18 20:27:15
【问题描述】:
我正在创建一个跟踪客户、商品、交易等的数据库。我无法描述Customers 和Items 之间的关系,它由buys 表示。关系buys 表示Customer 在收银台购买Items。事务buys 可以在单个事务中多次包括一个项目、多个项目和/或同一个项目;此外,多个Customers 可以在不同的场合购买同一物品。
关系buys 需要哪些属性才能跟踪所有购买的商品?
目前,我提出一个属性buys.id;但是,似乎需要一个复合键。密钥可以(buys.id、Customer.id、Items.id),但是如果客户要添加相同的项目两次,那么这些规则就会被打破。我还将包括一个date 属性。此外,quantity 属性可以添加到关系中。
这似乎可以满足所有规定的规则,但似乎有点麻烦。
有没有办法改进这个设计?
(如果有人知道一本好书或视频,我需要复习一下这些东西)
编辑:
This answer from another post could answer this question.
我正在使用 MariaDB 和 python。
【问题讨论】: