1

我是从给定ER图表创建表格的新手,虽然我已经使用了乌鸦的脚图,但对于下面的图表类型,我是全新的。了解ER图

由此,我如何确定表中的主键,外键和1-1,1-等关系?

ER model

非常感谢任何建议。

P.S.我想在MySQL Workbench中对它进行建模,所以如果有任何具体的建议,我将不得不!

+1

一对多是'(0,*)'0或很多1,1中的......只要pk/fk没有在某些表中定义字段,所以您不知道“字段”但您确实知道可持续性一个类别可以与零个或多个产品关联,而产品必须具有一个且只有一个'(1,1)'类别。一个类别可以有0个或多个与其相关的类别'(0,*)'自反身)购物车可以有0到多个'(0,*)'产品,并且产品可以链接到0或(许多购物车)购物车属于唯一一个'(1,1)'客户。而一个顾客可能有0或1个购物车'(0,1)' – xQbert

回答

2

此图表不包含足够的信息供您确定表中的主键或外键。例如,ShoppingCart没有列出任何属性,因此不可能说明密钥可能是什么。

但是,您可以很容易地确定关系。括号内的数字表示关系的基数,例如, (0,*)表示“零个或多个”,(0,1)表示“零个或一个”,(1,1)表示“一个且只有一个”。例如,从这个图表中,我们可以说一个产品可以在ShoppingCart的“零个或多个”实例中,并且ShoppingCart可以具有“零个或多个”产品,但是一个产品可以属于“一个且只有一个”类别。一个类别可以有“零个或一个”父母,但“零个或多个”子类别,等等。

+0

那么,'父'(在类别表中)也是一个表吗?我很困惑。 –

+1

“父母”描述了这种关系,例如“亲子关系” - 也称为递归关系。在这个例子中,类别可以是其他类别的超集(即它是“父”类别) - 它也可以是另一个类别的子类。这是一种常见的情况,因为它为您提供了一个类别层次结构。因此,图中的“父”行向您展示了类别与其自身*之间具有层次关系*。 – Nathan

+1

另一个常用的例子是“员工” - 一些员工向其他员工报告(或者相反:某些员工管理其他员工),因此实体“员工”与自己有亲子关系。 – Nathan