You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

弱实体能否通过同一关联关联多个强实体及ER图相关疑问

关于ER图弱实体关联与参与约束的疑问

背景与设想来源

  • 学习Silverschatz所著《Database System Concepts》的6.1题时,看到参考方案将payments设为policy的弱实体,二者通过payment关联形成双向完全参与的一对多关系。
  • 我在查找匹配自身设想的弱实体与强实体关联案例时遇到困难,因此对该设想的正确性存疑。

核心疑问:弱实体能否关联多个强实体并生成复合主键?

我设想给payment关联添加来自car或customer的分支并设置完全参与,使针对某保单承保车辆的支付记录主键变为(customer_id, policy_id, payment_no)或(car_id, policy_id, payment_no),以此明确支付对应的车辆。

举个实际场景例子:

  • 5位客户各有1辆车,均投保公司的2种保单,每月支付保费。
  • 现有方案中支付记录的主键为(policy_id, payment_no),仅能看到各保单对应的支付记录,无法知晓该支付对应哪辆车。
  • 若添加car端的完全参与,就能得到包含车辆信息的复合主键,更贴合现实需求——毕竟payment_no对应的支付客户可能为多辆车付费,将客户/车辆信息与支付记录关联会更实用,且仍能保持弱实体的一对多关系。

注:如果policy_id是车辆的唯一标识,此设想不成立;但如果policy_id仅指公司提供的保单类型,该逻辑会更合理。

我曾看到过类似的问题讨论,希望通过这个实例确认两点:

  1. 这种给弱实体关联多个强实体的设计是否合理?
  2. 上述提及的复合主键设计是否正确?

额外疑问:participated关联的完全参与约束设置

在participated关联中,完全参与是否应设置在accident端而非car端,且单向箭头指向car?
理由:并非所有车辆都出过事故,但每起事故必然涉及至少一辆车。

内容的提问来源于stack exchange,提问作者Tita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 06:55:14