firebase - Firebase 数据库结构的建议
问题描述
我有一个关于为我的 iOS 应用程序构建 Firebase 数据库的最佳方法的问题。基本结构是有users
和posts
。该应用程序将打开,user
登录的人将看到posts
他/她上传到数据库的所有内容(我可能会在以后更新此内容,以便用户可以看到users
他们关注的帖子)。post
每个人都有一个更好userId
吗?还是posts
让每个关联的数组更好user
?
解决方案
如果您可以对数据进行分片/分区,以便您不需要查询可能很长的列表,那么实时数据库总是更可取。
因此,在您的情况下,如果您知道要向用户显示他们自己的帖子列表作为起点,那么在您的数据库中对该列表进行建模是一个好主意。您通常将其称为用户的提要或墙,具体取决于您选择的社交网络。
如果您稍后还想显示他们关注的用户的帖子,您可能希望将这些帖子存储在用户的墙上。这种类型的数据重复起初可能看起来不自然,但在 NoSQL 数据库中很常见。事实上,这正是 Firebase 在其FireFeed 类示例中使用的模型。
要了解有关 NoSQL 数据建模的更多信息,请参阅:
- NoSQL 数据建模。
- 面向 SQL 开发人员的 Firebase。
- 了解 Cloud Firestore,这是关于 Firebase 的较新 Firestore 数据库,但也有适用于实时数据库的重要提示。
推荐阅读
- php - 使用 Gmail api 时是否可以测试配额错误?
- javascript - 没有使用 Node + Express + Nginx 设置 Cookie
- django - 过滤已存在相关 OnetoOne 的 Django Admin 查询集
- python - 如何遍历矩阵数组以计算矩阵内特定元素周围的相似元素的数量
- javascript - 为什么 async 会阻止 twitter 回调触发?
- python-3.x - Cron 不会导入 pandas 模块来执行 python 脚本。```ImportError: No module named pandas```
- javascript - 如何将 XML 输入从一种格式转换为另一种格式
- corda - Corda - 交易元数据
- ruby - 无法在 Sinatra 中重现 CVE-2018-7212
- mysql - 多个分组的聚合函数