设计mongodb / meteor可用性架构

时间:2016-12-02 19:15:20

标签: mongodb meteor schema availability database

我正在尝试建立一个小型网站,人们可以在这里预订用户进行为期一天的演出。我正在使用meteor的帐户包,我的计划是附上以下内容:

user.availability: [ 
                     {   
                       status: n, //where n is 0-# of status types (5 atm) : single char rather than float   
                       date: ddmmyyy, //string as well, no need for time as its day long   
                       job_id: {Job} 
                     }, ... 
                   ]

Job只有像where,what,when这样的信息。

有5种状态:中性,可用,明确不可用,已预订,保留。用户自然是中立的,明确地必须说明可用性。他们在前三种状态之间进行选择:n,a,u,并且只允许在未来两周内设置可用性。作业“给予者”是设置其他两种可用性状态的人。对我来说中性状态意味着他们不需要db(user.availability数组)中的记录。

这种风格为我提供了以下查询:

db.users.find({ availability: { status: 'a', date: { $in: search_dates_array }});

当用户登录/访问该网站时,我可以擦除他们在当前日期之前的日期的任何可用性设置。非活动用户会在更长的时间间隔内被修剪。

我认为这个解决方案是有益的,因为它可以存储最少量的信息,几乎不需要特定事件触发的维护,并且易于查询。但我不能100%确定这是否是利用mongodb优势的正确方法。我将不胜感激任何帮助,如果有人能指出我关于优化mongodb模式的(相对)易于理解的文章,那就太棒了。

谢谢。

0 个答案:

没有答案