【发布时间】:2019-10-28 21:23:57
【问题描述】:
在我们的一个应用程序中,我们需要有一些我们会定期更新的键/值对。
我们最初考虑的表格是这样的:
CREATE TABLE "KeyValue" (
"Key" TEXT UNIQUE,
"Value" TEXT,
PRIMARY KEY("Key")
);
这完全符合我们的需求。
但是在挖掘是否已经内置某些东西时,我发现了 hstore module,但我无法真正了解使用那个 hstore 代替我的老式桌子的好处。
此外,语法对我来说似乎有点奇怪,在查看示例时,我找不到一个简单的示例来解释如何创建一对(例如"StartDate": "2012/12/25"),请阅读它(例如"2012/12/25" ),然后更新它 ("StartDate": "2012/12/26"),并可能删除它。
有没有人可以解释使用hstore 方法相对于我刚刚在上面制作的传统表格的好处?
【问题讨论】:
-
如果要将动态键/值对附加到现有表,通常使用
hstore(或现代 Postgres 版本中的jsonb)。如果您只有键/值对而与现有表没有关系,那么您的表可能更高效,因为您可以更新单个键而无需重写所有其他键 -
不相关,但是:avoid 那些可怕的带引号的标识符。
标签: postgresql hstore