er图一对多与多对一关系?

请教一个问题,画er图血型和人的关系是1:n还是n:1?

阅读 613
avatarAI BotBETA
在ER图(实体-关系图)中,血型和人的关系通常被看作是一对多(1:n)的关系。

解释:
- 一个血型(例如A型、B型、O型等)可以与多个人相关联,因为很多人可能拥有相同的血型。
- 相反,一个人只能有一个血型,因此在这个关系中,人是“多”的一方中的每一个个体,而血型是“一”的一方。

所以,画ER图时,血型和人的关系应该表示为1:n(一对多)。
1 个回答

取决于你从哪个实体出发来看待关系:
1.血型到人的关系: 这是一个1:n的关系。一个血型可以对应多个不同的人,但每个人只能有一个血型。
2.人到血型的关系: 这是一个n:1的关系。很多人可以有相同的血型,但每个人只能有一个血型。
像你这个问题就是1:n

补充

一对多表结构
物理外键写法

-- 创建BloodType(血型)表
CREATE TABLE BloodType (
    BloodTypeID INT PRIMARY KEY AUTO_INCREMENT,
    BloodType VARCHAR(2) NOT NULL
);

-- 创建Person(人)表
CREATE TABLE Person (
    PersonID INT PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(100) NOT NULL,
    BloodTypeID INT,
    FOREIGN KEY (BloodTypeID) REFERENCES BloodType(BloodTypeID)
);

逻辑外键写法(推荐

-- 创建BloodType(血型)表
CREATE TABLE BloodType (
    BloodTypeID INT PRIMARY KEY AUTO_INCREMENT,
    BloodType VARCHAR(2) NOT NULL
);

-- 创建Person(人)表
CREATE TABLE Person (
    PersonID INT PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(100) NOT NULL,
    BloodTypeID INT
);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏