【发布时间】:2015-12-19 04:41:24
【问题描述】:
假设我有两个模型,歌曲和用户,我想让用户喜欢的歌曲。
一种方法是在用户之间创建一个连接表作为歌曲,我们称之为收藏夹。该表的每一行将只有一个用户 ID 和歌曲 ID 以及它自己的 ID。我对这种方法有一些经验,据我所知,它工作得很好。
但是,我认为实现收藏夹的第二种方法是在用户模型中添加一个包含歌曲 ID 数组的列。每个 id 都会匹配用户喜爱的歌曲。
我想知道这些解决方案中哪个更可取以及为什么。
【问题讨论】:
-
Join Table 是最好的方式,因为它在进一步扩展数据库结构时具有兼容性。
-
您能说得更详细些吗?你是说如果我添加更多模型,连接表会更好吗?如果有,为什么?
-
如果您使用连接表,您可以对其进行索引。但对于 CSV 则不能。
-
@BhavikJani:他们不是在谈论 CSV-in-a-column,PostgreSQL 支持 array columns。
-
你能在数组类型的列上应用索引吗?
标签: sql postgresql activerecord