在仍允许连接的同时分离SQL表

时间:2015-11-22 21:53:20

标签: mysql sql

我有一个包含6列的SQL表,Continent,Country,City,lat,long和id,但是我需要将它们分成3个不同的表,一个用于大陆,一个用于国家,一个用于城市和位置数据但他们仍然需要通过外键连接。例如,不是澳大利亚,澳大利亚墨尔本,而是澳大利亚,澳大利亚,墨尔本。这可能与SQL查询有关而不会丢失我表中的所有数据吗?

2 个答案:

答案 0 :(得分:0)

是的,这是关系数据库工作原理的基础。

你会有一个continent_id。

$counter    = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=".$this->url );
$ajsn       = json_encode($counter);

echo $ajsn['search_metadata']['count'];

取决于您的应用程序,但拆分它们可能没那么有用。这些信息是相当静态的,每次你想要它加入都会很烦人,无论它多么微不足道。

答案 1 :(得分:0)

您的MainTable应该

 id , city_id, lat, long

然后你有3个表continentcountrycity

 continent_id, continent_name
 continent_id, country_id, country_name
 country_id, city_id, city_name

然后你查询是。

 SELECT M.*, CI.city_name, CO.country_name, CN.continent_name
 FROM MainTable M
 JOIN city CI
   ON M.city_id = CI.city_id
 JOIN country CO 
   ON CI.country_id = CO.country_id
 JOIN continent CN
   ON CO.continent_id = CN.continent_id