Mysql 多对一关系能否在逻辑ER图中表示?
我的作业中有一个特别的问题,如下所示: “组成一套产品的每个产品都由一个供应商提供,并有一个唯一的ID。产品总是作为一套产品的一部分销售,从不单独销售。” 基于此,假设许多产品创建一个包(aka set),但我不知道我是否正确,如果正确,我如何以ER图的形式直观地显示多对一关系 我已经构建了自己的概念和逻辑ER图,我只需要知道我是对还是错,这样我就可以继续剩下的Mysql 多对一关系能否在逻辑ER图中表示?,mysql,sql,database,entity-relationship,erd,Mysql,Sql,Database,Entity Relationship,Erd,我的作业中有一个特别的问题,如下所示: “组成一套产品的每个产品都由一个供应商提供,并有一个唯一的ID。产品总是作为一套产品的一部分销售,从不单独销售。” 基于此,假设许多产品创建一个包(aka set),但我不知道我是否正确,如果正确,我如何以ER图的形式直观地显示多对一关系 我已经构建了自己的概念和逻辑ER图,我只需要知道我是对还是错,这样我就可以继续剩下的 根据您的描述,您的模式将具有一对多关系,即您的单个包包含许多产品 你也可以找到你的ERD图,这是作业的细目和我从中得到的信息: 构成一
根据您的描述,您的模式将具有一对多关系,即您的单个包包含许多产品
你也可以找到你的ERD图,这是作业的细目和我从中得到的信息: 构成一套产品的每个产品都由一个供应商提供,并提供一个唯一的ID,。产品总是作为一套产品的一部分销售,而不是单独销售 从这一点,我得到了这些实体:
PackageProduct
--------------
id (pk)
package_id (foreign key to Package table)
product_id (foreign key to Product table)
您还需要一个供应商表,但您被告知包和供应商之间的关系是一个包可以有一个且只能有一个供应商
这是代码:在供应商和包之间创建一对多关系。在执行此操作时,包中将包含一个外键,用于存储Supplier.id(或Supplier\u id)
因此,要得出结论,您应该拥有以下实体(表):
这并不是说它总是同一个包,所以一个产品可以包含在多个包中。它也可以是多对多吗?是的,我想是的。哦,非常感谢,我想我会切换到一对多。这种模式强制一个产品可以是一个包的一部分,并且只能是一个包的一部分。这将是非常不寻常的,除非这是一个被描述为需求的业务规则,否则我不认为这是对需求的正确解释。您似乎知道逻辑关系不同于物理模型。在逻辑模型中,两个实体之间可以存在多对多关系。对于物理关系,您需要实体/表以物理方式显示逻辑多对多。严格来说,您也可以在PackageProduct中使用package_id、product_id使用复合主键,但实际上最好让实体拥有自己的唯一键。如果出于任何原因您不想这样做,您应该从PackageProduct中删除id,并将product和package之间的关系更改为PackageProduct以进行定义。对于ERD,“定义”关系会导致外键成为连接到关系多个端的表主键的全部或部分