Database 使用列表存储此数据结构的数据库类型是什么

Database 使用列表存储此数据结构的数据库类型是什么,database,postgresql,data-structures,Database,Postgresql,Data Structures,我有一个由键组成的数据结构:值对是键,值是整数,值本身是带有条件的列表。条件是每个列表中的元素都应为正,且总和为1。目前我对钥匙之间的关系不感兴趣。假设我有4个,那么我对下一个键12不感兴趣 作为Python字典编写的示例: { 4: [0.34, 0.66], 12: [0.1, 0.9], 34: [0.25, 0.25, 0.5], 98: [1.0]} 我的问题是什么样的数据库系统最适合存储它,以及如何存储?我更喜欢将其存储在PostgreSQL数据库中,但是如果另一种db体系结

我有一个由键组成的数据结构:值对是键,值是整数,值本身是带有条件的列表。条件是每个列表中的元素都应为正,且总和为1。目前我对钥匙之间的关系不感兴趣。假设我有4个,那么我对下一个键12不感兴趣

作为Python字典编写的示例:

{ 4: [0.34, 0.66],
 12: [0.1, 0.9],
 34: [0.25, 0.25, 0.5],
 98: [1.0]}
我的问题是什么样的数据库系统最适合存储它,以及如何存储?我更喜欢将其存储在PostgreSQL数据库中,但是如果另一种db体系结构或理念更适合,那么我愿意这样做

目前,我将其存储在PostgreSQL数据库中,其中列表适合每个记录的单个字段。然而,这是一个丑陋的解决方案,我不认为db字段应该包含列表。如果列表的条件不是必需的,那么我只需将列表的每个元素以及相应的键存储在一个记录中,如下所示:

[( 4, 0.34),
 ( 4, 0.66),
 (12, 0.1),
 (12, 0.9),
 (34, 0.25),
 (34, 0.25),
 (34, 0.5),
 (98, 1.0)]

但是,条件很重要,不应中断。因此,我认为这不是一个好的解决方案,因为记录是相互独立的。那么,什么是一个好的解决方案呢?

只要将列表作为数据库中的单个元素来处理,在PostgreSQL中使用数组就是一个好的解决方案

如果在数据库处理中使用单个元素(例如,在WHERE条件中使用数组元素或希望在数组元素上建立引用约束),则数组会出现问题


在某种程度上,如果列表对于数据库来说是一个单一的东西,我认为如果您使用数组来存储它,它实际上并不违反第一个标准形式。

您是否在数据库中处理这些列表的元素,例如,让它们出现在WHERE子句中?如果没有或没有太多,使用PostgreSQL数组,您应该不会有问题。@LaurenzAlbe没有处理是由Python脚本完成的。数据库仅用于存储。如果你说数组很好,那么我可能会保留它们。