"约会的多对多主键"

时间:2015-03-26 02:59:56

标签: mysql database

我知道这个问题已被提出很多,但我的例子似乎有所不同。

我有两个实体:Doctor和Client,以及它们之间的多对多关系,用于创建实体Appointment,其中包含" appointment_date_time"属性。

我使用Doctor和Client中的外键在Appointment中创建复合主键,但由于同一个医生和个人之间可以有很多约会,所以" date_time" 作为主键的一部分包含在内,因此没有重复项?或者这两个外键是否足以查询?

谢谢!

1 个答案:

答案 0 :(得分:0)

你的PRIMARY KEY需要始终是唯一的,因此包括datetime会产生一个可用的复合PRIMARY KEY(可能除非你可以同时为多个约会同时进行2个不同的目的,这可能会发生)是唯一的。

然而,实际上这不太可能是最好的方法,好像他们移动预约然后这个时间会改变(或者可能改变了医生)。然后,您无法静态引用约会,例如,如果您在创建期间将某些额外数据与其关联,或者必须将其作为审核条目引用。它还意味着您创建的对它的任何引用都需要存储所有3列。

因此我只想在这种情况下创建一个自动递增的主键,并简单地在医生和客户端上编制索引以进行快速搜索。

相关问题