我完全是 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/