Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无外键联接_Mysql_Sql - Fatal编程技术网

Mysql 无外键联接

Mysql 无外键联接,mysql,sql,Mysql,Sql,如果出现以下表格: x, y, lat, lng 和桌子 lat, lng, Country, State, City 现在,我需要有第一个包含所有值的表,包括lat和lng。另一方面,第二个表中的数据不需要存在,它只是一个可能的扩展 您可以看到,第一个表和第二个表之间存在某种父子关系,所以我考虑使用lat,lng作为外键,因为我要进行连接。另一方面,除lat和lng之外的一切都不需要存在 我是否应该使用外键?没有它们也可以工作,但仍然可以加入,以便能够过滤其他国家、州、市的数据?是和否,取

如果出现以下表格:

x, y, lat, lng
和桌子

lat, lng, Country, State, City
现在,我需要有第一个包含所有值的表,包括lat和lng。另一方面,第二个表中的数据不需要存在,它只是一个可能的扩展

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


我是否应该使用外键?没有它们也可以工作,但仍然可以加入,以便能够过滤其他国家、州、市的数据?

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

是的,如果第二个表中的记录总是在第一个ie之后创建,则第二个表中的数据是稍后将出现的一些信息


否,如果第二个表中的数据将独立于第一个表输入,例如第一个表由用户填写,第二个表由gis数据导入填写……如果是这种情况,在long和lat上对两个表进行索引将足以减轻查询性能的影响。

如果强制要求lat,第二个表中的lng应仅包含第一个表中当前显示的值,然后需要外键。否则,您可以在第一个表和第二个表之间使用左联接。您可以在lat和lng上联接,使其唯一