RDBMS 中的数组值

Posted

技术标签:

【中文标题】RDBMS 中的数组值【英文标题】:Array Values in an RDBMS 【发布时间】:2021-08-10 19:35:41 【问题描述】:

我正在尝试找出为项目创建数据库的最佳方法。我们从一堆项目中获取数据并将它们存储到 RDBMS 中。每个项目的品质之一是每个项目的标签和用户。

现在我有一个用户表、一个标签表和一个项目表,这些表在理想情况下会引用用户和标签的 PK ID。我想知道这两个选项中的哪一个最适合处理这些数据,以便在 Tableau 等外部资源中使用:

    理论上,我们可以将每个标签和用户的 ID 存储在各自列中的数组中,以使表格更加简洁和易于理解。

    我们为每个标签和用户设置了一个单独的列,并使用布尔值来显示它们是否具有属性。

选项 1 乍一看似乎更有吸引力,但由于我们使用的是 Db2,我不确定它的可行性。

我知道这里可能没有足够的信息。这是一个守口如瓶的项目,所以我不能提供大量信息,但如果您需要更多建议来提供建议,我可以看看我能做些什么。谢谢!

【问题讨论】:

【参考方案1】:

两者都没有。您将使用联结/关联表:

project_labels
    project_label_id primary key
    project_id foreign key references projects(project_id)
    label_id foreign key references labels(label_id)

project_users
    project_user_id primary key
    project_id foreign key references projects(project_id)
    user_id foreign key references users(user_id)

【讨论】:

啊,太好了,谢谢!我仍然习惯于建模,所以我什至没有想到这一点。

以上是关于RDBMS 中的数组值的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize:重叠 - 检查数组中的任何值是不是与传递的数组中的任何值匹配

如何用另一个数组值替换javascript中的数组值?

HSQLDB UNIQUE 约束和 SQL 数组类型

用C#找出数组中的最大值和最小值

检查多维数组的任何子数组中的特定键是不是存在特定值

Python Numpy:用另一个数组中的对应值替换一个数组中的值