数据库设计有两个相关的表

时间:2011-03-09 19:52:36

标签: sql database-design

我有两个表:一个包含约会数据(时间,联系人......),另一个包含备注(字符串)。有些预约有注释,有些注意事项与约会相关,但并非所有约会都有注释,并且并非所有注释都与预约相关。什么会更好?

a) In the appointments table, add a field that contains a noteID
b) In the notes table, add a field that contains an appointmentID
c) Do both

我该如何决定?

6 个答案:

答案 0 :(得分:7)

不要。

使用关联联接表。

你有三张桌子。

  • 备注,带有备注ID

  • 约会,有约会ID

  • 与笔记ID和约会ID的关联。

答案 1 :(得分:1)

D)都没有。

添加名为Appointment_Notes的第三个表。此表的两列是AppointmentID和NoteID(或者调用这些表的主键)。

答案 2 :(得分:1)

如果您有多个与一个约会相关的注释,或者与一个注释相关的多个约会,您需要制作某种类型的连接表,根据主键将约会和注释表连接在一起。这样,那些与约会无关的笔记可以保持独立,但是对于约会的约束连接没有限制,反之亦然。

答案 3 :(得分:1)

d)创建一个新表来表示约会和备注的交集。新表由每个表中的主键组成,称为外键。

答案 4 :(得分:1)

你可以有另一个表连接这两个表,它由apptID和noteID组成。这样就不需要在父表的外键中使用空值了。

答案 5 :(得分:0)

你如何描述你的申请,一些约会有笔记和一些笔记有约会只是巧合。

我创建了第三个appointment_notes(appointment_id,note_id)表,它恰好是前面提到的两个表的主键的关联。