首页 > 解决方案 > 如何编辑关系属性以仅使用 LDM 中的 CDM 标识符的一部分?

问题描述

我正在使用 Power Designer 为简化的网络商店创建概念数据模型。

我无法指定OrderReceipt之间的关系。我希望收据在逻辑模型的主键中仅包含订单标识符的一部分(更具体地说,只有order_id)。我无法通过调整关系属性来实现这一点(见下面的截图;有问题的关系用绿色箭头标记)。

我应该简单地省略概念模型中的关系吗?


概念数据模型

在此处输入图像描述

逻辑数据模型

在此处输入图像描述

编辑

如果可能不清楚我是如何设想我的桌子的……</p>

用户

用户名 密码 邮件 地址
黑客123 绿草地 david.norton@gmail.com 大卫 诺顿 西郡 40, 1240 梦幻岛
音乐人100 超级密码 john.stewart@gmail.com 约翰 斯图尔特 奇怪的胡同 50, 1250 外太空

产品

product_id 姓名 描述 每单位价格 测量单位 供应
1 牙刷 100 无效的 5.99 200
2 超级粘贴 200 为了灿烂的笑容 7.99 50

命令

order_id 用户名 product_id 数量
50 黑客123 1 2
50 黑客123 2 1
51 音乐人100 1 5

收据

收据_id order_id
12 50
13 51

编辑#2

我刚刚意识到我可能应该将 Order 分成两张表!一个跟踪特定订单上的产品,另一个跟踪下订单的人。

也许我什至可以将 Order 表分成 3 个部分

Order(order_id, order_time)

ProductsPerOrder(order_id, product_id, amount)

OrdersPlaced(order_id, username)

标签: databasedatabase-designrelational-databaseentity-relationshippowerdesigner

解决方案


你有一个矛盾... 一部分说 Order 是由 User+Product+Order 标识的;另一个说 Order 有自己的标识符 order_id。

我猜第二个是正确的,通常的设计是 Order 有一个 id。

您需要更改 CDM 中 Order 和 User/Product 之间的关系,以取消选中 Dependent属性。这些链接只是强制性的,而不是依赖的(这意味着订单是相对于用户+产品定义的)。

ps 收据也一样,它有自己的标识符。


推荐阅读