我对ERM,SQL和数据库都是真正的新手,所以这可能只是一个愚蠢的问题,但无论如何我都去了。
我制作了一个ERM,这是有问题的部分:
名称将成为 MainCharacter 的外键,但我也希望它是主键。这甚至是可能的,还是应该为 MainCharacter 添加代理键?如果可能,有没有办法在ERM中显示这个?
我在这里找到了一些相关的问题,但无法找到我想要的答案。任何帮助将不胜感激:)
答案 0 :(得分:1)
将外键作为主键肯定是可能的并且并不罕见。这通常在实现重叠或可选的子类型时发生。
您的示例听起来像是可选子类型的情况,但您的图表显示了独立实体集之间的关系。经典ERD表示法没有用于子类型的特定表示法,但我们可以将其显示为识别关系中的弱实体集:
双矩形表示弱实体集(意味着它没有自己的密钥但通过与Character的关系来标识),而双关联线表示总参与(如果没有与a的关联,则MainCharacter不能存在)字符)。双菱形表示识别关系。这些元素总是组合使用,但也可以在常规关系中使用完全参与。通过使用正确的符号,我们很少需要ERD中的基数指标。
扩展ER符号表示使用不同样式的子类型,例如圆形和圆弧或三角形。我更喜欢圆弧符号,因为它可以用来通过在圆圈中写o或d来区分重叠和不相交的子类型,并且弧可以区分子类型和超类型,而不管元素的方向如何。