我正在学习 SQL,作为学习的一部分,我正在创建一个 ER 图,我将用它来构建数据库。该任务涉及六种不同类型的番茄酱,每种番茄酱都含有不同的成分。我有一个产品表,其中包含属性productID、productName、referenceTomatoType、productSizeMilliliters 和productPrice。此外,我还有一个成分表,其中包含成分 ID 和成分名称属性。
六种不同类型的番茄酱中的每一种都有其独特的配方,需要通过将产品和成分链接在一起的表在数据库中表示。在第三个表中,我需要包含 IngredientAmount 和 StorageTime。我该怎么做呢?而这三个不同的表之间有什么关系呢?我猜测是一对多的关系,但我不确定。如果这是非常基本的,我很抱歉,但正如我提到的,我对此很陌生。
我尝试使用名为recipeID的主键将产品表和成分表与配方表连接起来,同时使用产品表中的productID和成分表中的成分ID作为外键,但是我'我不确定这是否正确。我还尝试过将productID和成分ID作为配方表中的主键,但由于产品包含多种成分,因此将productID作为配方表中的主键会导致重复,我也不确定是否允许.
如果您的产品和成分表具有 M:M 关系,那么您需要在它们之间创建一个交集表,即您创建的成分表
这种类型的表可以有自己的单个 PK 列,也可以有由 2 个 FK 列组成的复合 PK - 由您选择哪个选项。
对于配方的任何属性,您只需将它们添加为交叉表中的列