【发布时间】:2011-02-14 20:15:53
【问题描述】:
我确信这是一个基本问题,但我是 SQL 新手,所以无论如何,对于我的用户个人资料,如果用户住在好莱坞,我想显示以下内容:location = "Hollywood, CA - USA"。所以我假设在用户表中会有 1 列,如 current_city,其 ID 为 1232,这是城市表的 FK,其中 PK 的 city_name = 好莱坞。然后连接 state 表和 country 表以查找名称 CA 和 USA,因为城市查找表将只存储 ID(如 CA = 21 和 USA = 345)
这是设计表格的最佳方式还是我在想是否应该在 user_table 中添加 2 列,如 city_id 和 city_name。并且还将 country_id、country_name、state_id、state_name 添加到 city 表中。这样我就可以节省前往其他父表的行程,只是为了获取 ID 的名称。
这只是一个示例用例,但我有很多查找 ID 表,所以一旦我知道如何做到最好,我将对所有表应用相同的原则。我的要求是可扩展性和性能,所以最适合这些的就是我想要的。
【问题讨论】:
标签: mysql database-design