【问题标题】:Two types of orders ERD两种类型的订单ERD
【发布时间】:2012-04-26 01:16:53
【问题描述】:

我是数据库设计的新手,我正在尝试为一家在线销售产品并接受重复处方订单给客户的药房创建 ERD。

这是我的 ERD 的链接: http://i.imgur.com/aiKP0.png

我想知道如何只能为两个订单使用一个“付款”和“卡详细信息”实体,所以每个订单都有 2 个实体。我可以在 ORDER TYPE 实体和支付/卡详细信息实体之间建立关系吗?

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 欢迎来到 SO!你的问题不是很清楚。

标签: database database-design erd


【解决方案1】:

我正在努力寻找同时使用Prescription_OrderProduct_Order 的充分理由。应该只有一个Orders(复数,因为ORDER 是一个保留字无处不在)表,其中Customer_Recurring_Order 表(具有引用CustomerProduct 的自然键)打破了客户重复的规则订单,无论它们是否具有处方性质。您的药物属性正确地属于产品表中的记录。

此外,Card Details 表应正确链接到一个或多个 Customer,因为我很确定卡详细信息在功能上取决于客户的存在。

清理完这些后,您只需要一个 PaymentCard Details 实体。要记住的一个好的设计原则是,如果两个实体具有所有相同的属性,那么它们可能不是两个不同的实体。

您为什么不将运输信息分解为一个单独的实体Order_Shipment。所有货件是否总是包含客户订单的所有部分?

【讨论】:

    【解决方案2】:

    你的设计有一些缺陷:

    1. Product OrderOrder Product。开发人员和管理员会疯狂地记住哪个表用于什么。
    2. 不清楚为什么你有 2 个Card Details?与其将Perscription_PaymentIDProduct_PaymentID 列添加到Card Details,不如反过来——将CardID 字段添加到两个表中。
    3. 我不清楚加入CustomerORDER TYPE 的意图。考虑更改名称。

    此外,即使写了这么小的回复,也很难跟上包含空格、下划线、混合大小写名称、单数/复数变体的表/列名称。

    请看一下answer,并考虑使用一些通用方法来命名您的关系、列和约束。

    【讨论】:

    • 在回复您帖子的第 2 点时,这就是我问这个问题的原因——我想知道是否可以将付款表与订单(从订单类型重命名)连接起来
    猜你喜欢
    • 2020-12-28
    • 2020-05-08
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多