mysql中3个表之间的关系

时间:2014-07-11 07:10:35

标签: mysql sql database relationship

我不知道我的问题使用了什么标题。我的课程中有一个非常常见的场景。 ClassAone-to-oneClassB关系,ClassCone-to-one的关系ClassB。这种关系是亲子关系。没有ClassBClassAClassC实例就不能存在。我在数据库设计方面工作不多。我不知道如何在表格中映射这种关系。

我所做的是为ClassA创建表格'A',为ClassC创建表格'C',并为ClassB 'AB''CB'。 'AB'表格将用于ClassAClassB之间的关系,而'CB'表将用于ClassC和{{1}之间的关系}}。

我想知道我的工作是否正常?如果这种关系是一对多怎么办?如果您认为该方案不存在,请告诉我这是如何实现的,A ClassB有一个LocationAddress也有一个Contact

代码

Address

1 个答案:

答案 0 :(得分:0)

从我在这里看到的,这些不是一对一的关系。在过去的10年里,我曾几次与一对一的关系一起工作过。您希望一对一关系的唯一原因是减少表格大小。例如,如果某些列对于大多数行为空,并且那些空列在逻辑上相关,我将考虑将它们移动到不同的表中。但这确实是一对一的OrZero关系。

您的案例是一对多的关系。您可以强制执行没有两个位置共享相同的地址,但您将在应用程序层而不是数据库层中执行此操作。

在这种情况下,您可以在'许多'上使用外键。侧。即位置表和联系表中的address_id。