现有Postgres表与新表中的JSON列



我有一个我试图显示信息的"目录"。这些信息将从几个不同的表中获取,用户将能够设置偏好以隐藏其"目录"上各个表的记录。我正在运行Postgres数据库

所以,我的问题是:

创建一个新表(table_a_to_catalog)会更好(性能明智),它可以在其中存储table_a_id和catalog_id,以获取用户想要为该目录隐藏的table_a的记录。然后有另一个表(table_b_to_catalog)保持该连接...等等...

在目录的记录中将隐藏偏好作为JSON值存储为JSON会更好吗?因此,它将像{" table_a" => [ID1,ID2,ID3]," table_b" => [ID1,ID2,ID3]}

这确实取决于此目录的用途...如果信息已阅读,并且您每天运行一次工作以更新上述目录,那么JSON会更好。但是,如果您想更新有关CateLog Live的信息并允许它可以编辑,那么拥有一个单独的表将是最好的。

至于个人喜好,我认为将数据保存在表格中时,当您想将数据用于其他功能

时,请更加灵活性。

具有非常大的表对性能带来负面影响。在Postgres表中保持"隐藏"查看数据意味着每个目录中的每个隐藏条目都有一个数据库条目。每个客户端应用程序都需要过滤该表以获取与用户相关的信息,并且对于许多用户,这可能需要大量时间。

如果一个人简单地将字段添加到用户表中,该字段包含视图数据的HSTORE,JSON或CSV(例如隐藏首选项),则可以缩短初始加载时间少量。JSON如果"隐藏"意味着根本不显示客户端,那么如果您不希望将数据发送给客户。

我略有地说,因为许多其他因素(缓存)将影响性能更大。您可能需要考虑将REDIS用于应用程序运行时和Postgres进行数据仓库。

最新更新