我不知道我的问题使用了什么标题。我的课程中有一个非常常见的场景。 ClassA
与one-to-one
有ClassB
关系,ClassC
与one-to-one
的关系ClassB
。这种关系是亲子关系。没有ClassB
和ClassA
,ClassC
实例就不能存在。我在数据库设计方面工作不多。我不知道如何在表格中映射这种关系。
我所做的是为ClassA
创建表格'A',为ClassC
创建表格'C',并为ClassB
'AB'和'CB'。 'AB'表格将用于ClassA
和ClassB
之间的关系,而'CB'表将用于ClassC
和{{1}之间的关系}}。
我想知道我的工作是否正常?如果这种关系是一对多怎么办?如果您认为该方案不存在,请告诉我这是如何实现的,A ClassB
有一个Location
而Address
也有一个Contact
。
代码
Address
答案 0 :(得分:0)
从我在这里看到的,这些不是一对一的关系。在过去的10年里,我曾几次与一对一的关系一起工作过。您希望一对一关系的唯一原因是减少表格大小。例如,如果某些列对于大多数行为空,并且那些空列在逻辑上相关,我将考虑将它们移动到不同的表中。但这确实是一对一的OrZero关系。
您的案例是一对多的关系。您可以强制执行没有两个位置共享相同的地址,但您将在应用程序层而不是数据库层中执行此操作。
在这种情况下,您可以在'许多'上使用外键。侧。即位置表和联系表中的address_id。