我正在为Android制作一个即时通讯应用程序,并在后端使用Java和应用程序引擎。在处理海量数据时,在数据存储中定义实体的正确方法是什么?
要在后端存储对话和消息,我有2个选项(如我所见)来存储数据。
创建2个根实体: 对话(ID,消息ID)和消息(ID,“text”)。
OR
会话(ID)消息(会话实体的孩子)(ID, “文本”)
虽然在技术上都可以工作,我不明白有关数据存储的限制(如1对于某些实体,写/秒),在查询时担心CPU开销,并且可能有数百万个消息根条目。我想我不确定是否需要祖先实体,或者最适合这样的应用。
tl; dr构建这样一个数据库的最佳方式是什么?
这正是我所想的/担心的。谢谢你对我的确认很清楚。 – Japes
你编辑让我困惑。我认为数据存储在acestral结构中只允许1次写入/秒。所以在一个可以让很多人快速发送消息的群体对话中,这种对话是有限的。 我想如果结构和写入速度有限制,为什么我不能在根中创建所有类型? – Japes
但是每个独特的对话是在两个人之间对吗?他们不会那么快写下来,如果他们在爆发时做出来,你可以用指数回退来处理 –