PostgreSQL / express 菜鸟 - 创建新的 table 还是在现有的 table 中创建一个新列?
PostgreSQL / express rookie - create new table or just a new column in existing table?
这可能会因为基于意见而关闭,但希望我能得到一两条评论。
我正在构建一个社交媒体应用程序 (Express/Postgres/React),其中包含 post 社交、交友等功能。我发现了一些 Postgres 入门代码,可以为用户创建 tables,posts & followers 具有相关约束并且效果很好。
当我扩展它时,从广义上讲,我正在努力解决的问题是知道何时为某物创建新的 table 以及何时将该数据存储在现有的 table 中,在新专栏中。例如,“喜欢”——如果一个人喜欢 post,我是否要将“喜欢”列添加到 post table 并在那里存储 user_ids?或者,我是否创建一个专用的“喜欢”table 并存储用户 ID 和 post ID。
这两种方法在某些情况下都有效,但我担心我会选择一种,充实它并意识到我需要走另一种方法,否则就会被性能较低的方法所困。
您与 post 用户之间存在 many-to-many 关系。一个用户可能喜欢多个 posts,并且 posts 可能会收到 may likes。为了表示这种关系,您通常会创建一个桥 table,使用引用用户的外键和 posts table.
所以:
create table likes (
user_id int references users(user_id),
post_id int references posts(post_id),
primary key (user_id, post_id)
);
您可能想要向 table 添加更多列,例如 post 被点赞的日期。
这可能会因为基于意见而关闭,但希望我能得到一两条评论。
我正在构建一个社交媒体应用程序 (Express/Postgres/React),其中包含 post 社交、交友等功能。我发现了一些 Postgres 入门代码,可以为用户创建 tables,posts & followers 具有相关约束并且效果很好。
当我扩展它时,从广义上讲,我正在努力解决的问题是知道何时为某物创建新的 table 以及何时将该数据存储在现有的 table 中,在新专栏中。例如,“喜欢”——如果一个人喜欢 post,我是否要将“喜欢”列添加到 post table 并在那里存储 user_ids?或者,我是否创建一个专用的“喜欢”table 并存储用户 ID 和 post ID。
这两种方法在某些情况下都有效,但我担心我会选择一种,充实它并意识到我需要走另一种方法,否则就会被性能较低的方法所困。
您与 post 用户之间存在 many-to-many 关系。一个用户可能喜欢多个 posts,并且 posts 可能会收到 may likes。为了表示这种关系,您通常会创建一个桥 table,使用引用用户的外键和 posts table.
所以:
create table likes (
user_id int references users(user_id),
post_id int references posts(post_id),
primary key (user_id, post_id)
);
您可能想要向 table 添加更多列,例如 post 被点赞的日期。