【问题标题】:Best way to store arrays of simple data in PostgresQL [duplicate]在 PostgresQL 中存储简单数据数组的最佳方法 [重复]
【发布时间】:2021-11-27 20:24:05
【问题描述】:

我正在创建一个数据库,其中一个“用户”表需要有一组外键链接到另一个表的多行。我正在尝试找出处理此问题的最佳方法。

user projects
jeff [1,2,6]
dave [3,4]
projects otherstuff
1 'content 1'
2 'content 2'
3 'content 3'
4 'content 4'
5 'content 5'
6 'content 6'

我想可以为每个名为“user_projects”的用户创建一个表,但如果我有 10k 个用户,如果每个用户都在同一个项目上工作,那么拥有 10k 个带有冗余行的表似乎令人沮丧。

想法?

【问题讨论】:

  • 拥有一个单独的user_projects 表,其中仅包含从user 映射到project 的行实际上非常常见,并且通常在SQL 中是首选。用户内部连接更容易找到在单个项目上工作的所有用户、单个用户的所有项目等。
  • DemixPixel 是对的:使用正确标准化的多对多关系。虽然 Postgres 确实提供了数组,但您不能对它们使用外键约束,而且通常使用起来更复杂。
  • 我明白了……我更熟悉 NoSQL,所以这种关系映射肯定让我停下来。找到这篇文章供任何未来阅读这篇文章的人想要更多信息。这真的很有帮助。 launchschool.com/books/sql_first_edition/read/multi_tables

标签: sql postgresql database-design


【解决方案1】:

具有多对多的关系。这是 ERD 图。

【讨论】:

    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多