什么是效率更高,相关的表很少或较大的表?

时间:2019-04-18 09:37:07

标签: sql

我了解有关Shop的信息。它属于CityCity属于CountryCountry属于Continent

我应该制作一张包含4列的大表,其中包含有关每个Shop的信息。还是我应该做4张桌子。首先使用Continent列。其次是Country,它与Continent有关系。第三是City,它与Country有关系。最后以Shop排名第四,它与City有关系。

什么是最好的方法?

1 个答案:

答案 0 :(得分:5)

因此,通常的方法是使用与外键链接的单独表。

为什么?好吧,假设您开设了10家新商店。当然,您可以只将其详细信息添加到您的商店表中,但是您打开的商店越多且拼写的地名越难,错误就越有可能蔓延。拥有链接的表意味着您拥有的单个版本事实。换句话说,您只有一次密西西比州,而且没有密西西比州或密西西比州的风险。

不仅如此,而且在一种表格方法中,您正在使用文本存储国家,城市和大洲。因此,如果您的商店库存或销售量很大,并且您想按城市或国家/地区生成报告,那么该查询将很快变得缓慢。

通过使用带有整数主键的单独表,SQL可以非常快速地搜索该城市或国家/地区的销售情况。不仅如此,还可以更轻松地创建报告,例如城市x或国家x的所有店铺销售情况。