【发布时间】:2016-08-13 12:10:32
【问题描述】:
假设我们有一个允许人们喜欢或不喜欢图片的应用。
这看起来像一个数据密集型应用程序,因为您会期望大量的 (dis)like 请求,所以假设我们选择了 Node.js。
由于我们不希望人们多次投票,因此我们需要一种关联 picId 和 userId 的方法。可以这样做:
- 使用关系数据库,通过使用 picId 和 userId 为键的表,
- 使用 NoSQL,通过为每个用户创建一个“文件”并在其中存储她投票的所有 picId...
这部分数据库会被密集读写,对于每一个投票你首先需要检查用户是否已经投票,然后写入新的投票,并更新图片的总投票数。
哪个是最佳选择(仅基于技术原因)?
【问题讨论】:
-
还有
UPSERT选项。 -
我的逻辑是“当你有关系时,你选择关系数据库”。