gpt4 book ai didi

mysql - 为产品实现点赞、评论、浏览量计数器

转载 作者:可可西里 更新时间:2023-11-01 06:33:53 25 4
gpt4 key购买 nike

我正在创建一个电子商务后端,我的每个产品都具有以下计数器属性

- product views
- product likes
- product comments count

产品数据库表的当前数据库列是

 - id
- likes_count
- views_count
- comments_count
- category_id
- category_parent_id
- category_sub_parent_id
- handling_charge
- shipping_charge
- meetup_address
- is_additional_fields
- status
- is_deleted
- created_at
- updated_at

如以下博客所示 Wanelo engineering blog实现一个可以在单行上频繁更新的计数器会导致 innodb 上的行锁定,如果频繁更新可能会导致应用程序出现死锁情况。但是这个解决方案在博客中有很多解释,我对此有所了解。但是,如果有多个与单个产品关联的计数器可以在应用程序增长时同时更新怎么办。我应该如何为计数器设计数据库表。我是否应该维护单独的表,即

likes counter table

- id - product_id - count

views counter table

- id - product_id - count

comments counter table

- id - product_id - count

通过维护单独的表,即使产品同时更新(如+评论+ View ),它也会单独更新并减少行死锁情况的可能性。如果它在一个表中并且所有表的更新同时进行,则可能会导致问题。

问题:有没有更好的方法来设计柜台的表格?有什么建议吗?

最佳答案

产品表中的 View 计数器就可以了。

一个单独的表,用于包含像 (product_id, user_id) 这样的列,因此每个用户只能对产品点赞一次。否则,如果它只是一个简单的计数器,他们就可以混搭。

一个单独的评论表,包含诸如(product_id、comment_text、date..等)列

这是你要问的吗?

关于mysql - 为产品实现点赞、评论、浏览量计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com