微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL / Express新秀-创建新表还是在现有表中创建新列?

如何解决PostgreSQL / Express新秀-创建新表还是在现有表中创建新列?

这可能会因为基于意见而封闭,但希望我能发表一两个评论

我正在构建一个具有发布,交友等功能的社交媒体应用程序(Express / Postgres / React)。我发现了一些入门Postgres代码,可以为具有相关约束的用户,帖子和关注者创建表,并且效果很好。>

在我进行扩展时,从广义上讲,我一直在苦苦挣扎的是,知道何时为某事物创建新表以及何时仅将数据存储在现有表的新列中。例如,“喜欢”-如果某人喜欢某个帖子,是否要在该帖子表中添加一个“喜欢”列并在其中存储user_id?或者,我是否创建专用的“喜欢”表并存储用户ID和帖子ID。

这两种方法在某些情况下都可行,但我担心我会选择一种方法,充实它,并意识到我需要采用另一种方法,或者陷入一种性能较低的方法中。

解决方法

您与用户和帖子之间存在多对多关系。用户可能喜欢多个帖子,而帖子可能会喜欢。为了表示这种关系,通常会创建一个桥表,并使用引用用户表和帖子表的外键。

所以:

create table likes (
    user_id int references users(user_id),post_id int references posts(post_id),primary key (user_id,post_id)
);

您可能想在表格中添加更多列,例如喜欢该帖子的日期。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。