在我的网络应用程序中,经过身份验证的用户可以从他的 Spotify 播放列表中挑选歌曲在聚会上播放。我希望客人(未经身份验证的用户)能够在动态创建的反应路线上查看挑选的歌曲,并在他们自己的设备(可能是手机)上对他们最喜欢的歌曲进行投票。
我正在使用 Mongo、Express、React/Redux、Node 堆栈。
由于客人无权访问我的应用程序的 redux 商店,他们查看经过身份验证的用户选择的歌曲的唯一方法是通过对我的应用程序数据库的 GET 请求。我最初的计划是只存储播放列表文档,用户可以通过获取这些播放列表向 Spotify api 发出请求。但是,它们是未经授权的,需要访问令牌。这意味着我的数据库必须存储经过身份验证的用户选择的每一首歌曲。
我的问题与设计有关。我不认为让我的一个文档保存所有歌曲是一个好主意,因为有些人可能想要挑选数千首歌曲,而一个文档将无法保存所有歌曲。另一方面,为每首歌曲创建一个单独的文档似乎有点过分。
谁能帮我找出哪个选项更好,或者如果有我没有想到的其他选项可以完全避免这个问题?谢谢
假设您将每首歌曲存储在一个单独的文档中,此策略的主要缺点是空间复杂性,您将需要更多空间来存储所有文档。
但是,假设您将所有歌曲文档保存在同一个集合中,它会提供一些优势,例如:查询和排序操作将更加灵活和快速。它可以帮助您节省处理和开发时间。这里显示了类似的逻辑。
仅使用一个文档来存储所有歌曲会使您的数据库操作更加复杂,这需要更多的开发时间和代码来以正确的方式组织所有检索到的数据。另一个缺点是它不是一个长期可扩展的策略,主要是因为 BSON 文档的限制是 16MB。
在我看来,每首歌分开文件的设计更合适,原因如下:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句