我需要创建一个“喜欢”的应用程序。这意味着具有唯一ID 的人可以喜欢具有唯一ID 的项目,但只能一次。商品无法不受欢迎。在插入之前,我只提出了一个包含user_id
和item_id
列的小表,我应该检查该用户是否已经喜欢该项。在我看来,这不是完成任务的最佳方式,因为会有很多(约100万)用户和大量项目,因此表格应该非常大,这会影响搜索和插入速度。有没有其他方法可以做到这一点?或者,如果我的方法适用于此,那么将此信息存储在数据库中的最佳方法是什么?目前我使用的是MySQL数据库,在这里使用NoSql会更好吗?
答案 0 :(得分:2)
首先要做的是在TWO列(组合)上设置“唯一”约束,以便它们的组合是唯一的。不确定MySQL是否支持这一点,但MSSQL明确表示,并且你可以拥有高达8 GB的数据,因此有一百万用户甚至没有达到其极限 - 如果你有超过一百万的话就可以很好地扩展。你应该在liker上创建一个覆盖索引并且喜欢并使其独特。使用80填充插入将是即时的,查找也是如此。这是一个关系问题,因此关系数据库将为任何非关系(NO SQL)数据库提供速度和效率。你没有提及liker和喜欢是否具有共性 - 我猜不是