首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户喜好的PostgreSQL逻辑/查询

用户喜好的PostgreSQL逻辑/查询
EN

Stack Overflow用户
提问于 2021-08-29 15:36:47
回答 1查看 252关注 0票数 0

我对postgreSQL非常陌生,我希望将字段增加1或减少1(类似于FieldValue.increment(1) )

场景:假设post(表中的列)的值为10,而5个用户试图同时增加1。我希望更新后的post值为15,而不是11。如何使用postgreSQL完成此操作?

技术栈: PostgreSQL Express NodeJS的反应

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-29 15:48:02

你想知道谁喜欢什么对吧?否则,有些人可能会“喜欢”两次,或者“不像”他们从来不喜欢的东西。

所以,像这样的人一样,有一张桌子可以储存在这样的岗位上:

代码语言:javascript
复制
CREATE TABLE likes (
   person_id bigint REFERENCES persons NOT NULL,
   post_id bigint REFERENCES posts NOT NULL,
   PRIMARY KEY (person_id, post_id)
);

CREATE INDEX ON likes (post_id);

每个“喜欢”都是这个表中的一个条目。

主要的关键是保证没有人能够“喜欢”同一个帖子不止一次,并且索引使得能够快速找到所有喜欢某个帖子的人。

关系数据库的事务保证将确保即使两个人同时插入一行,其中只有一个会成功。

您可以找到如下所需的计数:

代码语言:javascript
复制
SELECT count(*)
FROM likes
WHERE post_id = 12345;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68974463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档