Mysql 德国城市、地区、地区等的数据库规范化
有时,city_district、district和region可以为空。小城市没有城区。一个城市(法兰克福美茵河畔)可以包括/是一个地区。一个城市(柏林)可以包括/是一个地区和一个地区 表为空,将根据已验证的用户输入填充。我为每一列创建了自己的表并将它们连接起来,如下所示: 邮政编码:城市标识Mysql 德国城市、地区、地区等的数据库规范化,mysql,database-design,database-normalization,Mysql,Database Design,Database Normalization,有时,city_district、district和region可以为空。小城市没有城区。一个城市(法兰克福美茵河畔)可以包括/是一个地区。一个城市(柏林)可以包括/是一个地区和一个地区 表为空,将根据已验证的用户输入填充。我为每一列创建了自己的表并将它们连接起来,如下所示: 邮政编码:城市标识 城市/地区:城市/地区id 城市:地区id 地区:地区id 地区:州id 州:姓名 +-------------+----------------------------+---------------
城市/地区:城市/地区id
城市:地区id
地区:地区id
地区:州id
州:姓名
+-------------+----------------------------+-------------------+-----------+-----------+-------------------+
| postal_code | city_district | city | district | region | state |
+-------------+----------------------------+-------------------+-----------+-----------+-------------------+
| 60313 | Innenstadt | Frankfurt am Main | NULL | Darmstadt | Hessen |
| 10719 | Charlottenburg-Wilmersdorf | Berlin | NULL | NULL | Berlin |
| 73773 | NULL | Aichwald | Esslingen | Stuttgart | Baden-Württemberg |
+-------------+----------------------------+-------------------+-----------+-----------+-------------------+
这么好吗?过度正常化?如何使用空值联接表?我想得到上面的带有连接的表。如果我想在“postalcode”之后加入“citydistrict”,我会收到一条错误消息“Not unique table/alias”。如何正确地为这些表设置别名
邮政编码:市区:
地区:
地区:
州:德国大约有8K个邮政编码?如果不进行规范化,表的大小可能约为1-2MB——这是一个相当小的数量。根据您想要的索引,它可能会达到3MB 每个级别的规范化都是过度规范化 是否每个邮政编码都在一个
城市
?如果是这样,那么折衷方案是有两张表:
SELECT
*
FROM
postalcode
LEFT JOIN
city ON postalcode.city_id = city.id
LEFT JOIN
district ON city.district_id = district.id
LEFT JOIN
region ON district.region_id = region.id
LEFT JOIN
state ON region.state_id = state.id;
这样做可能会将磁盘占用空间减少一半。您好。“normalize”一词用于表示两种不同的含义:放入1NF(本身没有固定的含义),以及根据FDs和JDs分解为更高的NFs。两者都不涉及用ID替换值。那你为什么用这个词呢?你在引用什么,你认为这个词的意思是什么&你认为你在努力实现什么?此外,关系模型中没有空值,因此您必须告诉我们您的引用中所说的空值“规范化”是什么。你的分解/重组在直觉上是合理的,但你为什么要这样做呢?PS,那么任何谷歌搜索都告诉你关于使用SQL表别名的信息吗?我想避免重复。回复你的错误消息和评论:请在每篇文章中问一个问题。请将澄清编辑成帖子,而不是评论。请阅读并采取行动。阅读SQL
选择distinct
,以及自然连接
。
postal_code, city_district, city_id
city_id, city, district, region, state