1对1关系中的实体是否只有外键作为ERM中的主键?

时间:2017-01-03 16:54:52

标签: mysql foreign-keys primary-key entity-relationship foreign-key-relationship

我对ERM,SQL和数据库都是真正的新手,所以这可能只是一个愚蠢的问题,但无论如何我都去了。

我制作了一个ERM,这是有问题的部分:

enter image description here

名称将成为 MainCharacter 的外键,但我也希望它是主键。这甚至是可能的,还是应该为 MainCharacter 添加代理键?如果可能,有没有办法在ERM中显示这个?

我在这里找到了一些相关的问题,但无法找到我想要的答案。任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

将外键作为主键肯定是可能的并且并不罕见。这通常在实现重叠或可选的子类型时发生。

您的示例听起来像是可选子类型的情况,但您的图表显示了独立实体集之间的关系。经典ERD表示法没有用于子类型的特定表示法,但我们可以将其显示为识别关系中的弱实体集:

Subtype ERD

双矩形表示弱实体集(意味着它没有自己的密钥但通过与Character的关系来标识),而双关联线表示总参与(如果没有与a的关联,则MainCharacter不能存在)字符)。双菱形表示识别关系。这些元素总是组合使用,但也可以在常规关系中使用完全参与。通过使用正确的符号,我们很少需要ERD中的基数指标。

扩展ER符号表示使用不同样式的子类型,例如圆形和圆弧或三角形。我更喜欢圆弧符号,因为它可以用来通过在圆圈中写o或d来区分重叠和不相交的子类型,并且弧可以区分子类型和超类型,而不管元素的方向如何。

Subtype EERD