【问题标题】:Join Table vs Array of ids: PSQL连接表与 id 数组:PSQL
【发布时间】: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


【解决方案1】:

如果您的网站流量很大,那么您应该使用materialized views 数据库设计理念。

【讨论】:

    猜你喜欢
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 2019-07-23
    • 2012-11-30
    • 1970-01-01
    • 2013-11-22
    • 2017-09-24
    相关资源
    最近更新 更多