我试图DVD的销售和DVD出租的,以客户的关系模型。 虽然我不认为我的transction表是否正确。 如果任何人都可以让我知道如果我在设计这将是巨大的正确方向要去。
Answer 1:
这里是你可以设计这样一种方式。
我不是一个数据库专家。 我已经设计了与几桌小型应用程序的数据库。 我尝试 (偏重试,有时我无法),以便更为通用的可能,所以我并不局限于一个角落时,有一个范围变更。
在你的图中,我注意到一些东西像你的销售仅限于DVD的假设。 如果店主开始销售蓝光光盘或便携式游戏机,会发生什么。 我的建议是,保持设计的通用。 所以我改写的DVD表项,使表可容纳任何东西。
我还添加项目类型表,以便您可以定义它是什么类型的项目。
你的交易应该被视为一个单一的顺序。 客户可以放置一个订单可以包含一组项目,他们想购买,并说他们想租几个项目。 你不会要求他们两次刷卡,你会吗? 相反,创建在订单表头客户的订单,并将在订单详细信息表的行项目。 订单详细信息表也将指定如客户需要多少项目,如购买/租赁量。 当他们租,返回日期字段是空的开始。 当他们返回的项目,你可以回去,并通过搜索项ID和客户ID组合的日期填写。
您可以在设计这个n
的方式,但数量有限的信息,这是我能想出。
我不指出这是最好的设计。 我希望这给你一些想法把它从这里根据自己的需要微调吧..
Answer 2:
许多零售数据库模型中各类型的交易(“出售哈利波特”,“哈利·波特的租赁”)作为在同一个表的不同行。 所以,你会拥有“TRANSACTIONTYPE”,然后你可以有客户 - >交易 - >的LineItem(事务的实例) - > TRANSACTIONTYPE。
Answer 3:
我把所有的交易信息中的一个表。 某些字段可能不依赖于交易(P采购,R租赁)的类型,还等什么用? 磁盘空间很便宜。 该代码会更简单和具有更少的表跑得更快。
文章来源: How can I improve this database model?