我有一个由PHP编写的基于Web的即时消息应用程序.最近我从mysql迁移到couchdb,我认为这通常是一个好主意,它到目前为止工作得很好.我不需要视图等.基本上我通过ID获取文档.
不过我对性能有些怀疑.两个用户之间的对话存储在单个文档中.例如A和B之间,我有一个文件,在C和B之间,我有另一个文件等.
我永远不会删除日志,当在这两个用户之间启动新会话时,我使用json_decode解码存储的文档,打印出用户最近的对话历史记录.当其中一个人写新内容时,我在数组的末尾添加新的聊天行(我从文档中获取),将数组重新编码为json,最后更新文档.
我对吗?在无sql数据库中存储这种大型数组的最佳实践是什么?
我的模型不同; 说出每件事都用一份文件.{"from":"foo","to":"bar","text":"嘿那里"}.因此,您只需制作新文档,并且每个文档都保持非常小.
添加时间戳,然后使用键入该时间戳的视图重建对话.
您将需要使用服务器的时间来确保正确的排序,因此我建议您通过更新处理程序(http://wiki.apache.org/couchdb/Document_Update_Handlers)进行更新,并在其中添加时间戳.
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |