连接表与ID数组:PSQL

连接表与ID数组:PSQL,sql,postgresql,activerecord,Sql,Postgresql,Activerecord,假设我有两个模型,歌曲和用户,我想让用户喜欢的歌曲 一种方法是在用户之间创建一个连接表作为歌曲,我们称之为收藏夹。这个表的每一行都有一个用户id、歌曲id和它自己的id。我对这个方法有一些经验,据我所知,它工作得很好 但是,我认为实现收藏夹的第二种方法是在用户模型中添加一列,该列由一组歌曲ID组成。每个id将匹配用户喜欢的歌曲 我想知道这些解决方案中哪一个更可取,以及为什么。如果你的网站流量巨大,那么你应该采用物化视图数据库设计概念。连接表是最好的方法,因为它在进一步扩展数据库结构时具有兼容性。

假设我有两个模型,歌曲和用户,我想让用户喜欢的歌曲

一种方法是在用户之间创建一个连接表作为歌曲,我们称之为收藏夹。这个表的每一行都有一个用户id、歌曲id和它自己的id。我对这个方法有一些经验,据我所知,它工作得很好

但是,我认为实现收藏夹的第二种方法是在用户模型中添加一列,该列由一组歌曲ID组成。每个id将匹配用户喜欢的歌曲


我想知道这些解决方案中哪一个更可取,以及为什么。

如果你的网站流量巨大,那么你应该采用
物化视图
数据库设计概念。

连接表是最好的方法,因为它在进一步扩展数据库结构时具有兼容性。你能详细介绍一下吗?你是说如果我添加更多的模型,连接表会更好吗?若有,为什么?若你们使用联接表,你们可以在上面建立索引。但是对于CSV,它是不可能的。@BhavikJani:他们不是在谈论列中的CSV,PostgreSQL支持。你能在数组类型的列上应用索引吗?