我了解有关Shop
的信息。它属于City
。 City
属于Country
。 Country
属于Continent
。
我应该制作一张包含4列的大表,其中包含有关每个Shop
的信息。还是我应该做4张桌子。首先使用Continent
列。其次是Country
,它与Continent
有关系。第三是City
,它与Country
有关系。最后以Shop
排名第四,它与City
有关系。
什么是最好的方法?
答案 0 :(得分:5)
因此,通常的方法是使用与外键链接的单独表。
为什么?好吧,假设您开设了10家新商店。当然,您可以只将其详细信息添加到您的商店表中,但是您打开的商店越多且拼写的地名越难,错误就越有可能蔓延。拥有链接的表意味着您拥有的单个版本事实。换句话说,您只有一次密西西比州,而且没有密西西比州或密西西比州的风险。
不仅如此,而且在一种表格方法中,您正在使用文本存储国家,城市和大洲。因此,如果您的商店库存或销售量很大,并且您想按城市或国家/地区生成报告,那么该查询将很快变得缓慢。
通过使用带有整数主键的单独表,SQL可以非常快速地搜索该城市或国家/地区的销售情况。不仅如此,还可以更轻松地创建报告,例如城市x或国家x的所有店铺销售情况。