【发布时间】:2011-01-17 20:42:47
【问题描述】:
我正在考虑一个非常简单的类似 Twitter 的应用程序,我正在考虑仅支持 twits 和时间线。
但是我的头脑,非常习惯于关系模型......无法在 Azure 表或 noSql 中提出合理的模型。基本上,我在想:
- 用户可以将其他用户添加为 朋友。
- 用户可以编写消息(最多 200 字符)。
- 消息总是按顺序显示 时间,最新的在前。
- 用户页面显示他最近的 20 消息。
- 主页(时间线)显示 他和他的最近 20 条消息 朋友。
很简单:D
如果我将所有消息放在一个表中,并将 userId 作为分区键......一切都很简单,但是......我不认为该解决方案可以很好地扩展。但是其他解决方案使时间线页面非常复杂或非常低效,因为它不是要从每个朋友那里获取最新的 20 条消息,而是要从所有人那里获取最新的 20 条消息……这让我大吃一惊。可能是你有一个非常讨厌的朋友,最近 20 条消息来自他 :D
以 Azure 表格方式存储此信息的可扩展且有效的方法是什么?
提前致谢。
【问题讨论】:
标签: twitter azure nosql data-modeling azure-table-storage