我正在尝试使用外键连接两个表。
表1 :(牌匾):
PLAQUE_ID PLAQUE_TYPE facility_id FACILITY PLAQUE_SUB_LOCATION
2468 Lettering 26 Gorab Building DONOR WALL FRIEND LEVEL
2469 Lettering 36 abc Hospital MUSIC & ENTERTAINMENT WALL
2476 Facility Plaque 46 abc Hospital 1ST FL OFFICE ROOM
表2:设施
FACILITY_ID FACILITY FACILITY_DESC PLAQUE_ID
26 Gorab Building 2468
36 abc Hospital 2469
46 abc Hospital 2476
我不希望facility表与Plaque表具有相同的行。我想在设施专栏中有不同的名字。我认为唯一的方法是将FACILITY
列作为Plaque
表的外键,但我感到困惑,因为我们可以将这样的列设为外键。我只看到ID
列作为外键。 FACILITY
列中不同值背后的原因是因为每一行都会对FACILITY
列中的FACILITY_DESC
有大的描述。
非常感谢答案。
答案 0 :(得分:1)
您不需要Facility表中的PLAUQUE_ID,因为您在Plaque表中有一个facility_id,这足以在Plague和Facitlity表之间建立连接。只需使用简单的连接即可。例如:
SELECT Plaque_ID, Plaque_Type, Facility FROM Plaque INNER JOIN Facility ON Plaque.Facility_ID = Facility.Facility_ID
我应该将Facility表的Facility列设置为唯一,并删除Plaque表的Facility列。请记住,斑块表应描述斑块属性。 还要考虑添加一个新的PlaqueType表,并将Plaque id的Plaque Type列替换为PlaqueType表的相应外键。
的简单说明