【发布时间】:2013-06-15 08:48:20
【问题描述】:
我有一个包含各种客户信息的预先存在的表。目前它还具有以字符串形式列在 3 列中的“城市”以及“地区”和“州”。冗余信息!
我想创建三个新表,一个用于城市,一个用于区域,一个用于州,其中将包含每个城市的单个条目等,然后将 ID 引用回现有客户带有 location_id 的表。
如何将不同的城市名称导出到城市表中,将不同的区域导出到区域表中,然后让城市也引用 region_id 和 state_id 表,以便将信息全部分组!
当然是业余问题,但我感谢任何帮助!
【问题讨论】:
-
这很容易通过一些基本的 SQL 查询来实现。您是否尝试过开始这项工作并遇到了具体问题?
-
另外,在这种情况下,我可能会质疑这种标准化水平的必要性。如果您只打算在应用程序中将城市视为一个不同的对象,并且地区和州只是该对象的属性,那么我只会将城市拉出到它自己的表中,并将州和地区作为字段。当然,如果您将状态和区域视为第一类对象实体(即区域和状态将具有不同的属性),则将它们标准化。
-
嘿,谢谢伙计。是的,我只是……今天脑死亡太可怕了。我需要对区域级别进行规范化,因为那里也会包含不同的信息。我预计州一级也是如此,所以我想这比抱歉更安全?
-
当然,如果州和地区真的有自己的属性和与之关联的业务逻辑,那么一定要规范化。我刚刚提出了这一点,因为正如最初描述的那样,这些似乎只是额外的数据字段,只是所选城市的结果。您经常看到人们“规范化”这样的事情,最终只会使应用程序变得更加复杂,尤其是在您使用某种 ORM 时。
-
所以分解问题。第一步是从表中提取所有城市、州、地区数据。你打算怎么做?
标签: mysql