我正处于移动应用程序开发的计划阶段,我需要你的帮助来决定我应该使用MySQL或MongoDB。首先让我描述一下数据:
我有一组项目(例如电影),用户可以通过不同的方式浏览和评分。物品总数约为20 000,不会增长或缩小。
每个用户都能够为每个项目(数值)打分并写下分配给每个项目的评论。我希望普通用户可能会得到40个不同的项目,但我希望更高!
典型的查询将是
给我所有满足某些条件的项目,让我浏览它们。示例:给我在00年代期间在欧洲生产的所有惊悚片。
向我提供特定用户评分的所有电影。
我还想做一些服务器端计算,例如每部电影的平均分数,每次用户总结一个项目的新分数时,应该更新该平均值。
对于MySQL,我会有一个包含3个不同表格的数据库(项目,用户,分数),对于MongoDB,我正在考虑一个包含1个集合的数据库,如下所示:
{
"name":"Inception"
"year":2010
"director":"Christopher Nolan"
"scores" : [
{
"user_id": 1234
"scoreA" : 3,
"scoreB" : 5,
"scoreC" : 4,
},
{
"user_id": 1235
"scoreA" : 4,
"scoreB" : 3
},
}
{
"name":"Titanic"
"year":1997
"director":"James Cameron"
"scores" : [
{
"user_id": 1201
"scoreB" : 5,
"scoreC" : 5
},
{
"user_id": 1220
"scoreA" : 4,
"scoreC" : 5
},
}
...
问题:鉴于我的用例,我使用MySQL或MongoDB是否重要?
提前谢谢!
答案 0 :(得分:1)
使用像mysql这样的关系数据库,除非你想尝试一下,否则不需要在这里使用MongoDb。
由于generell建议使用NoSQL(尤其是MongoDb),因此无法再改进RDMS。
另请看一下这个精彩的演示文稿:http://www.thedotpost.com/2015/06/neha-narula-consistency-and-candy-crush