正确的消息表数据库结构

时间:2014-07-28 08:50:23

标签: json database data-structures firebase

我正在尝试使用PhoneGap,AngularJS和Firebase编写消息传递应用程序。我正在尝试使用Firebase异常查询方法(12)来确定正确的数据库结构是正确的。

我需要一个消息“表”,其中存储了所有消息,但问题是这是一个NoSQL表,因此如果数据没有专门格式化,则很难检索数据。

例如,我最初考虑使用/messages/{userId}来获取用户的所有消息,/messages/{userId}/{partnerId}来获取特定的消息链,但我不能这样做,因为它意味着数据必须重复,一次是发送消息的人,一次是接收者。

任何人都可以建议一个适用于Firebase查询结构的布局,并允许:

  1. 检索进出用户的所有邮件
  2. 从一个用户到另一个用户的特定线程的检索

1 个答案:

答案 0 :(得分:1)

在这篇文章中查看data denormalizing。我遇到了类似的挑战,对我有用的解决方案是将自动ID下的所有数据存储在特定对象中,如果需要,我会根据需要在多个位置存储对该数据的引用。

将此问题应用于您的问题,如果简化,我会选择以下内容:

root/messages/{message_by_auto_id}/{message_body}

root/users/{user_id}/messages_this_user_can_see/{ref_to_message}

所以如果用户发布消息,应用程序需要将消息保存在消息中,并将对该消息的引用保存给每个朋友,如上所述。