我正在为一个网站和学校的移动应用程序建立一个新的API和数据库。因为这个应用程序是专为还没有完全识字的孩子准备的,所以它在学校里只使用一个登录名,然后学生就可以通过选择老师的图标和自己的图标登录,而不是输入用户名或搜索自己的名字。
为了适应这一点,我们收集了大约1200个儿童友好图标,以确保没有重叠,当一个学生有相同的图标和另一个。
问题是,当一个新的学生被创造或者老师想要改变一个学生的图标时,我们必须取消选择任何已经被学校的其他学生使用的图标的选择。
我解决这个问题的第一个倾向是将我的学校表链接到一个单独的"availableIcons“表,在该表中,每行从可能的图标列表开始,每次添加学生时,该图标将从可用图标列表中删除,对于已删除的学生,反之亦然。
这将防止服务器不得不查看所有当前使用的图标,并将它们与完整的图标列表进行比较,这听起来很慢,尤其是在我们的一些学校有大约500名学生的情况下。
我对这种方法的关注是存储完整的图标列表,即使是数字键,似乎也会占用相当大的空间。根据我的计算,每所学校大概有2-4百万美元。这不是什么大事,但如果有一个方法可以有效地做到这一点,而不必为每所学校存储完整的名单,我更喜欢这样做。
所有这些都使用SailsJS/MongoDB/waterline。
有什么建议吗?
谢谢!
发布于 2017-01-18 18:38:07
https://stackoverflow.com/questions/41389272
复制相似问题