2

我需要创建一个包含“喜欢”的应用程序。这意味着具有唯一 ID 的人可以喜欢具有唯一 ID 的项目但只能喜欢一次不能不喜欢该项目。我只是想出了一张小桌子,里面有user_iditem_id列,在插入之前我应该​​检查这个用户是否已经喜欢这个项目。在我看来,这不是完成任务的最佳方式,因为会有很多(约 100 万)用户和很多项目,所以表应该很大,这会影响搜索和插入速度。有没有其他方法可以做到这一点?或者如果我的方法适合这里,那么将这些信息存储在数据库中的最佳方法是什么?目前我正在使用MySQL数据库,这里使用NoSql更好吗?

4

1 回答 1

2

首先要做的是在两列(组合)上设置一个“唯一”约束,以便它们的组合是唯一的。不确定 MySQL 是否支持这一点,但 MSSQL express 确实支持,并且您最多可以拥有 8 GB 的数据,因此一百万用户甚至没有接近其限制——如果您拥有超过一百万的用户,则可以很好地扩展。您应该在liker 和like 上创建一个覆盖索引并使其独一无二。使用 80 填充插入将是即时的,查找也是如此。这是一个关系问题,因此关系数据库将在速度和效率方面限制任何非关系(NO SQL)数据库。你没有提到喜欢和喜欢是否可以交换 - 我想不是

于 2013-03-20T16:13:15.843 回答