我的表格Posts
包含字段id
,author_id
,message
,parent_id
。
parent_id
可以是相应父帖的null
或id
。
我还有表Votes
,其中包含字段id
,item_id
(引用Posts.id
的外键)。
我应该在此示例中使用哪种方法来存储分层数据?
我想从服务器返回类似于此的响应:
[{
user: {/* author-data */},
text: 'some string',
parent_id: null,
comments: [/* list of comments, each including it's own list of votes*/],
votes: [/* list of votes*/]
}]
数据几乎不会更新,经常插入和重读。
答案 0 :(得分:3)
使用parent_id
到id
的外键,以“正常”方式存储。
之后使用递归查询查询它:http://www.postgresql.org/docs/9.3/static/queries-with.html
如果您遇到性能问题,可以添加一个简单的缓存层。