【发布时间】:2013-11-29 20:35:47
【问题描述】:
我一直在对 Nosql(尤其是 RavenDB)进行一些研究,但我仍然不确定解决以下问题的最佳方法:
我有两个简单的对象,“用户”和“事件”。一个用户可以输入许多事件,一个事件可以由许多用户输入——标准的多对多关系。我正在努力摆脱关系数据库的思维模式!
以下是我想针对数据库运行的查询/操作:
- 获取用户未进入的所有事件
- 获取用户输入的所有事件
- 非常频繁地更新所有事件(剩余空间等属性)(从各种外部数据源轮询的数据)。
- 在事件过期时移除事件
所以根据我的阅读,我有几个选择:
- 创建一个链接用户和事件的新对象。例如,存储 userId、eventId 的“预订”对象。
这对我来说似乎最合乎逻辑,但感觉更像是“关系数据库”方法?
- 对用户对象中的事件数据进行非规范化处理,因此用户上有一个 eventId 列表。
看起来很明智,但这不会使双向查询变得困难吗?
- 不要为此使用 RavenDB,而是使用关系数据库。
非常感谢,
丹C
【问题讨论】: