将数据库表与数据中一些棘手的内容放在一起的好方法

用户名

我有需要转成表格的数据。此数据包含主要与荷兰王国有关的数据,以及其他一些国家/地区。这有一些陷阱:

荷兰王国由四个国家(如果是荷兰,则是一个国家)和三个特殊城市组成,这些国家属于荷兰,但不在荷兰本身内。

荷兰有省,那些省有市,市有住所。

这三个特别市不属于任何省,它们直接属于荷兰。

在我们得到的数据中,荷兰王国内部的三个国家就是那个国家。数据显示“国家/地区”下的国家/地区和“居住地”下的国家/地区

然后是其他国家的荷兰人的问题。对于那些国家/地区,我们不在乎它们是否具有省/市/自治区等。我们只是从国家角度来看。

为了给出更好的主意,我们得到的数据如下所示:

样本数据

博内尔岛实际上应该是国家/地区:荷兰,市/自治区:博内尔岛(也许是居住地:博内尔岛,不确定是否对查询有帮助)

我最初的想法是如何将其放在表中,如下所示:

表结构

  • 省份表将具有CountryId
  • 自治市表将有一个ProvincesId
  • Residences表将具有一个MunicipalitiesId和一个CountryId

Residences表中也会有一个CountryId的原因是因为像墨西哥这样的国家/地区,我们不想知道/显示市政当局,但是我们确实知道并且想要显示居住地。

但是,这种方法的问题是,在“住所”表中的“市政”列中,对于像墨西哥这样的国家,则必须包含空值。

还有另一个问题是,在荷兰王国中的一个国家(荷兰除外)中,该国家以及住所都填写有该国家的名称。我不知道将国家的名称放在“住所”表中是否明智。

d_z

具有这些要求的DB设计解决方案可能是:1)具有记录的地理对象类型(可能是分层的)的字典表(ID,名称):

{id = 1, Name = Province}, {id = 2, Name = Municipality}, {id = 3, Name = City} , 等等

2)一个带有FK的表(id,GeoTypeId,ParentId,CountryId,Name)(自身ID-> ID),该表存储对象的链接层次结构。记录将是:

{id = 1, GeoTypeId = 1, ParentId = null, CountryId = ..., Name = Zuid-Holland}, {id = 2, GeoTypeId = 2, ParentId = 1, CountryId = ..., Name = Rotterdam} 对于墨西哥,记录是 {id = n, GeoTypeId = 3, ParentId = null, CountryId = ..., Name = Morelia}

这对于编辑层次结构是很灵活的,但是您将需要一些额外的工作来选择记录(这是规范化的代价)。您也可以在新国家/地区需要时轻松添加其他GeoType记录,而无需更改架构。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将 div(通过 php 数据库获得)放在一起,当行满时放在一起

如何将两个数据框与一些条件要求合并在一起?

如何将两个数据框与一些条件要求合并在一起?

数据库性能:拆分表或保持在一起

将一些数据库数据(SQL表)转换为.csv格式

如何将数据库与应用程序打包在一起?

将多个 tinyDB 数据库添加在一起

通过在Laravel 5.5中将另外两个数据库放在一起来输出

Html 电子邮件:将一些词与“no-wrap”或“inline-block”放在一起?

用于将两个一对一表组合在一起的数据库设计

试图把一些断言功能放在一起,我无法尝试工作

将所有数据放在一起-一个主文件

如何将不同表中的数据放在一起而不重复

有没有一种方法可以将两行的数据与postgreSQL中的一些相交的数据组合在一起?

将 div 放在一起

熊猫数据框将具有相同列值的行放在一起

如何将数据帧的行放在一起(自下而上选择的行)

SQL Server将类别的相同数据放在一起

将两个熊猫数据框放在一起

下 WooCommerce 订单后,将一些数据添加到自定义数据库表中

如何通过将一些现有列合并在一起来创建新的数据框?

将recyclerview与数据库一起使用

将 arrayList 与数据库一起使用?

将MSChart与Access数据库一起使用

将 RecyclerView 与数据库一起使用

将2个mysql表放在一起一起显示结果

保存一些“静态”数据哪个速度更快?数组或缓存的数据库表?

Room library - DAO 接口如何与数据库交织在一起?

无论如何有一些表行打包在一起的HTML