首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SailsJS/MongoDB从长列表中查找所有未使用选项的最佳方法

使用SailsJS/MongoDB从长列表中查找所有未使用选项的最佳方法
EN

Stack Overflow用户
提问于 2016-12-30 01:00:21
回答 1查看 30关注 0票数 0

我正在为一个网站和学校的移动应用程序建立一个新的API和数据库。因为这个应用程序是专为还没有完全识字的孩子准备的,所以它在学校里只使用一个登录名,然后学生就可以通过选择老师的图标和自己的图标登录,而不是输入用户名或搜索自己的名字。

为了适应这一点,我们收集了大约1200个儿童友好图标,以确保没有重叠,当一个学生有相同的图标和另一个。

问题是,当一个新的学生被创造或者老师想要改变一个学生的图标时,我们必须取消选择任何已经被学校的其他学生使用的图标的选择。

我解决这个问题的第一个倾向是将我的学校表链接到一个单独的"availableIcons“表,在该表中,每行从可能的图标列表开始,每次添加学生时,该图标将从可用图标列表中删除,对于已删除的学生,反之亦然。

这将防止服务器不得不查看所有当前使用的图标,并将它们与完整的图标列表进行比较,这听起来很慢,尤其是在我们的一些学校有大约500名学生的情况下。

我对这种方法的关注是存储完整的图标列表,即使是数字键,似乎也会占用相当大的空间。根据我的计算,每所学校大概有2-4百万美元。这不是什么大事,但如果有一个方法可以有效地做到这一点,而不必为每所学校存储完整的名单,我更喜欢这样做。

所有这些都使用SailsJS/MongoDB/waterline。

有什么建议吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 18:38:07

可用图标是派生数据。我不想把它存储在数据库里。

我的方法:

  1. 获取所有图标
  2. 获取特定学校和教师使用的所有图标。
  3. 看看这两个集合的不同。考虑一下_.difference

1200个图标在内存中不是一个很大的数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41389272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档