我正在学习数据库。在我非常简单的数据库中,我有 2 个表。
WorkingHoursDetail
ID
NameOfWeek
Hours
Run Code Online (Sandbox Code Playgroud)
和
WorkingHours
ID
Name
Run Code Online (Sandbox Code Playgroud)
如您所见,它们目前没有关联。
现在,我面临着将它们联系起来的问题。我知道我通过添加一个外键来做到这一点,比如 MyOtherTableID 并将其链接到其他表 ID。
在上面的示例中,我可以向 EITHER 添加外键
WorkingHoursDetail
ID
NameOfWeek
Hours
WorkingHoursId
Run Code Online (Sandbox Code Playgroud)
和
WorkingHours
ID
Name
Run Code Online (Sandbox Code Playgroud)
或者
WorkingHoursDetail
ID
NameOfWeek
Hours
Run Code Online (Sandbox Code Playgroud)
和
WorkingHours
ID
Name
WorkingHoursDetailId
Run Code Online (Sandbox Code Playgroud)
我试过这个,它似乎有效,但是这个选项让我害怕。是否有一个“正确”的答案,或者这种变化只会影响数据写入数据库的顺序。如果是这种情况,那么这肯定会决定使用它的程序的流程(用户 GUI)。
根据经验,您应该在引用父表的子表上添加外键。在您的情况下,它似乎WorkingHoursDetail
是子表和WorkingHours
父表。
您可以通过询问哪个表可以独立存在而另一个表不存在来识别父表。在你的情况下WorkingHours
可以不存在WorkingHoursDetails
(但不是相反,所以WorkingHours
似乎是父表。
或者,您可以在插入新记录时查看数据流。如果两个表都是空的,则必须先在 中插入一行WorkingHours
,然后在 中插入一条记录WorkingHoursDetail
。这使得WorkingHours
父表,因此应该在WorkingHoursDetail
引用时添加外键WorkingHours
。
归档时间: |
|
查看次数: |
5911 次 |
最近记录: |