2017-10-20 69 views
0

在以下表格的情况下:没有加入外键

x, y, lat, lng 

而且表

lat, lng, Country, State, City 

现在,我需要先表中的所有值,包括纬度和经度。另一方面,第二个表中的数据不需要存在,它只是一个可能的扩展。

您可以看到第一个和第二个表之间存在父 - 子关系,因此我正在考虑使用lat,lng作为外键,因为我要进行连接。另一方面,除lat和lng以外的所有内容都不需要存在。

我应该使用外键吗?也许在没有他们的情况下工作,但仍然加入到能够过滤其余数据(国家,州,城市)?

+0

如果强制第二个表中的lat,lng只应包含当前第一个表中存在的值,则需要外键。否则,您可以使用1st和2nd表之间的左连接。 –

+0

你可以加入拉特和朗,使其独特 –

回答

1

是和否取决于数据如何进入这些表。

是的,如果在第二个表中的记录将永远是第一位后创建(即第二表中的数据是,以后还会来的一些信息)

没有,如果在第二个表中的数据将独立进来(例如,第一个表由用户填充,第二个表由一个gis数据导入填充)......如果是这种情况,则在长和长两个表上索引这两个表将足以缓解查询性能命中。