postgresql - 数组类型有什么用?

标签 postgresql

我完全是 postgresql 的新手,但我对 mysql 有很好的经验。我在阅读文档时发现 postgresql 有一个数组类型。我很困惑,因为我无法理解这种类型在 rdbms 中的哪些上下文中有用。为什么我必须选择这种类型而不是使用经典的一对多关系?

提前致谢。

最佳答案

我已经使用它们来更轻松地处理树(例如评论线程)。您可以将从树的根到单个节点的路径存储在数组中,数组中的每个数字都是该节点的分支编号。然后,您可以执行以下操作:

SELECT id, content
FROM nodes
WHERE tree = X
ORDER BY path -- The array is here.

PostgreSQL 将以自然方式逐个元素地比较数组,因此 ORDER BY path 将以合理的线性显示顺序转储树;然后,您检查 path 的长度以找出节点的深度,并为您提供缩进以获得正确的渲染。

上述方法让您从数据库到呈现的页面一次传递数据。

PostgreSQL 也有 geometric types , 简单 key/value types ,并支持各种其他的 build composite types .

通常使用传统的关联表会更好,但是在你的工具箱中拥有更多的工具也没有错。

关于postgresql - 数组类型有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756736/

相关文章:

sql - 惰性 order by/where 评估

regex - 在存储过程中转义 Postgres 8.4 中的 LIKE 模式或正则表达式字符串

django - 在 Django 中获取不同的随机查询集

postgresql - psql: FATAL: 数据库 "<user>"不存在

postgresql - 从 docker 外部的客户端连接到 postgres 对用户 postgres 进行了致命密码身份验证

python - 将图像插入 PostgresQL

macos - postgres 创建数据库;列 'dataconfig' 不存在

postgresql - Heroku Postgres 无法从 heroku 应用程序连接

sql - Postgresql 9.1 中已存在关系 "pk"

string - 检查一个句子是否在pl/pgsql中的字符串中