database - 如何编辑关系属性以仅使用 LDM 中的 CDM 标识符的一部分?
问题描述
我正在使用 Power Designer 为简化的网络商店创建概念数据模型。
我无法指定Order和Receipt之间的关系。我希望收据在逻辑模型的主键中仅包含订单标识符的一部分(更具体地说,只有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)
解决方案
你有一个矛盾... 一部分说 Order 是由 User+Product+Order 标识的;另一个说 Order 有自己的标识符 order_id。
我猜第二个是正确的,通常的设计是 Order 有一个 id。
您需要更改 CDM 中 Order 和 User/Product 之间的关系,以取消选中 Dependent属性。这些链接只是强制性的,而不是依赖的(这意味着订单是相对于用户+产品定义的)。
ps 收据也一样,它有自己的标识符。
推荐阅读
- c - 多进程 C linux 服务器挂起输出到套接字
- node.js - 使用 node.js 和 MongoDB 对 Web 应用程序进行 Dockerizing 时的代码 14
- .net - 在 .NET 框架中使用 VST 插件效果
- java - 如何通过 java 代码连接到 github 企业存储库?
- c# - 如何用类属性填充字典值并随时更新
- sass - 从 scss 文件中分离某些属性
- android - 在 OkHttp3 中检测 WiFi 连接丢失
- django - 如何在 CKEditor 的 CodeMirror 插件中添加 Django 语言模式?
- node.js - 如何将 JSON 的批量写入项目到本地 DynamoDB
- regex - 使用 .htaccess 阻止 Googlebot 访问以 4-6 位数字结尾的 URL,正则表达式?