我应该为这个设计选择 MySQL 还是 MongoDB

Should I choose MySQL or MongoDB for this design

我在 MySQL 和 MongoDB 之间挣扎。我正在为我的产品创建一个 rating/review 系统,我应该能够通过计算评分的平均值来计算总体评分。我的设计是这样的:

table products_review

假设我有一个大的(数百万)产品数据集,并且将来有 rating/review 的大数据集 [例如像 Yelp],我应该选择哪个数据库 MongoDB 或 MySQL?

你会拥有数百万的评论是现实的,还是你只是在夸大其词?

在你的情况下,我会选择 mySQL。你有什么接近关系模式,因此我会去关系。如果觉得数据太多,可以有一个table二月份的评论,另一个三月份的评论等等;您还可以按产品类别或其他方式进行分区。

如果你想mongoDB,你必须修改模式并完全非规范化。您一定不知道,但是在 mongoDB 上您没有加入因此,您将无法加入产品 table,因此您必须将产品名称和描述与评级(或者您不想按产品名称进行分组吗?)。因此,在 mongoDB 上它看起来像这样:

_id 
productId 
productName,
product description,
product category,
product
rating 
comment 
dateCreated 
userId 
username,
userGenger (male/female/unknow)
userAge
userRegisteredDate

在这个特定的用例中,我没有看到使用无模式的数据库有多大好处 (mongodb),如果你的问题是可扩展性,你可以通过购买更好的硬件来实现它 (你的网站将获得数百万评论的成功,因此您负担得起),或者通过执行适当的数据分区。