我有存储在数据库中的对象,它是一些带有属性的文本。该文本有评级。我需要存储此评级,并防止一个用户多次提高此评级。如果我将“文本ID”和“用户ID”存储在其他表中并计算需要“文本ID”的所有记录,则表中的记录太多。
有两种方法:
您可以使用多对多关系,即使用名称如“user_likes”的单独表,它将有user_id和like_id列,它们都是主键(这使得用户可能只喜欢 like_object 一次)
另一种方式 - 高流量网站使用的方式:用户表中的每个用户记录都有列:likes 只是序列化数组或 json,等等。在更新此列之前,您的应用程序会检索此数据并查找特定数据like_object_id(如果不存在) - 您更新数据库。请注意,在这种情况下,所有关心应用程序中数据一致性的内容(例如 like_object_id 存在于某些用户记录中,但不存在于 like_object 表中)都应该在应用程序代码中实现,而不是在数据库中实现。
PS 抱歉我的英语不好,但我尽力解释。
| 归档时间: |
|
| 查看次数: |
4299 次 |
| 最近记录: |