ER图,物理数据模型关系

ER Diagram, Physical Data Model Relations

我正在尝试创建一个非常简单的数据库超市管理系统。 我似乎对实体之间的关系如何工作有疑问,我正在使用 PowerDesigner 创建 ERD,然后从中生成所有内容(LDM、PDM、OOM)。这是个坏主意吗?

现在我的主要问题是在这 3 个表之间:

  1. 员工(收银员)
  2. 客户
  3. 订单(收据)。

我的做法是:
客户收集好自己要购买的商品,出示给员工,员工从机器上为客户下单,所以:

  1. 客户和员工之间存在关系(多对多):每个客户可以 request_order 来自一名或多名员工,每个员工可以 get_order 给一名或多名客户。
  2. Employee和Orders之间存在一种关系(1对多):每个Employee可以得到一个或多个订单,每个订单由一个员工取。 问题是如果我想知道与该特定订单相关的客户……我做不到。 我该如何解决?我怎样才能得到客户的具体订单。 我对此还是很陌生,对于任何明显的错误,我们深表歉意。

我坚持使用您标记的关系数据库上下文。

Data Modelling is an iterative process. There is a lot more definition that is needed, before the data model can be complete. Rather than answering the specifics that you request, which would be limited to one iteration; one increment, allow me to provide something more complete, several iterations progressed.

如果有用,请讨论此数据模型,并改进它以满足您的所有要求。

I am using PowerDesigner to create the ERD and then generate everything from it (LDM, PDM, OOM). Is this a bad idea?.

  1. PowerDesigner 很棒。请忽略特定于 Oracle 的废话,它会让您过早地考虑物理问题。
  2. 跳过 ERD,它在关系范式的上下文中是脑死亡的,并且被特定于该范式的 IDEF1X 超越。
    • 使用 实体级别 显示 ERD 等价。
  3. 对于小项目你可以忽略学术区别{CDM;低密度脂蛋白;数据管理; OOM 等}。
    • 其实只有一个模型:一开始是“概念”,然后你就进入“逻辑”,最后,当“逻辑”稳定后,进入“物理”。
    • 理解整个过程是合乎逻辑的。
    • 不幸的是,在 PD 中,每个模型都必须有单独的“模型”或文件。

Now for my main problem It's between these 3 tables:

我已经解决了那个问题。还暴露了别人。

each customer can request_order from one or more Employee and each Employee can get_order to one or more Customer
each Employee can get_order to one or more Customer

是的,但这是总体结果。在每个购物或演示实例中:

  • 一位顾客可以 request_order 一位员工(收银员)
  • 一名员工可以 get_order 来自一名客户

The problem is if I want to know the customer related to that specific order......I can't. How do I fix this?

已解决:Each Order is Identified by (CustomerId, DateTime),即。 Customer 创建了 Order.

备注

  1. 不要将流程元素(例如 Get_Order)与数据元素(例如数据模型)混合使用。这两个领域是分开的,并且受完全不同的科学支配。我们在这里解决数据;只有数据;只有数据。之后,流程模型就简单了。
  2. RecordIds 是反关系的。关系数据库中当然不需要它们。阅读我的其他答案以获得详细解释。
  3. 关系键(又名复合键或复合键)是关系数据库中的标准票价。它们提供的完整性远远超过基于 RecordId 的文件。
  4. 您需要更精确地(说明确切的顺序)定义订单的创建方式。

请随时发表评论或提出具体问题。