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

无foreign key和primary key仅含super key的实体是否属于weak entity?

引用自维基百科
在关系数据库中,弱实体(weak entity)是无法仅通过自身属性唯一识别的实体,因此它必须结合外键(foreign key)与自身属性来生成主键(primary key)。该外键通常是与其关联的实体的主键。

问题解答

你提到的这类实体不属于弱实体,也不违反设计规范,核心判定逻辑如下:

  • 弱实体的核心特征是:自身不存在任何能独立唯一标识元组的属性集合,必须依赖关联实体的外键才能生成主键。你举的例子里,first name和last name的组合已经能全局唯一识别所有元组,这个组合本身就是实体自身的超键,只要提取最小超键(这个例子里的组合已经是最小超键)就可以作为主键,完全不需要借助外部外键,属于常规强实体。
  • 你说的“没有主键”只是没有主动为表设置主键而已,不是实体本身的问题。只要实体存在有效超键,就可以从中选出候选键设置为主键,不存在不符合规范的问题。如果确实不给表设置主键,只是业务设计上的疏漏,和实体属性的合理性无关。
  • 注意区分复合主键和弱实体的标识逻辑:弱实体的主键一定是包含外键的复合键,但反过来,复合主键不代表所属实体是弱实体——只要复合键全部是实体自身的属性,没有包含其他表的外键,就和弱实体没有关系。
  • 唯一不符合关系数据库设计规范的情况是:实体无论怎么组合所有自身属性,都无法区分两个不同的元组,也就是不存在任何超键。这种情况说明你漏了必要的属性,或者这个实体没有单独建表的必要。

内容的提问来源于stack exchange,提问作者i'm ashamed with what i asked

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:24:02