当前位置: 首页 > 知识库问答 >
问题:

后端 - 数据库表设计中是一个字段对应一个数组,还是使用多个集合?

宰父冠玉
2024-10-11

假如现在有个表,主要使用的是两个字段,一个是 user_id,一个是 article_id。其中 article_id 是用户收藏的文章 id。一种方式是 article_id 只记录一个文章 id,通过创建多个集合来记录用户收藏的多个文章。一种方式是 article_id 是一个数组,记录用户收藏的多个文章。从性能角度或者是占用空间来看哪一种方式比较好?

共有1个答案

单于山
2024-10-11

一般都是一条一行,而不是 Array(部分数据库需要使用 JSON 或者 set),因为后者要考虑兼容性问题,一些旧的数据库是不支持 JSON/Set/Array 的,一些数据库虽然支持,但是因为其没有合适的索引方式,又会导致检索的效率很低。

所以,从便于查询的角度来说,一般都是倾向与一行一个记录,即便是这样会显得 user_id 很冗余。

 类似资料:
  • 问题内容: 如何有效地检查整数数组中的所有元素是否是Java中另一个数组的所有元素的子集?例如,[33 11 23]是[11 23 33 42]的子集。提前致谢。 问题答案: 从超集数组中取出一个。检查子集中数组的每个元素是否包含在中。这是非常快速的操作。

  • 问题内容: 我有一些副作用要应用,并且想知道如何组织它们: 一次性使用 或几个useEffects 在性能和体系结构上有什么更好的选择? 问题答案: 您需要遵循的模式取决于您的useCase。 首先 ,您可能遇到以下情况:在初始安装期间需要添加事件侦听器,并在卸载时对其进行清理,而在另一种情况下,则需要清理特定的侦听器并在prop更改时将其重新添加。在这种情况下,使用两个不同的useEffect更

  • 问题内容: 我正在建立一个网站,其中包含不同类型的项目,例如博客,帖子,文章等。用户可以将其中任何一个设置为他/她的最爱。现在,当我处理这个问题时,我有两个选择 为每种对象的用户收藏夹创建一个表。 为所有用户的所有类型的对象创建一个公用表。 第一种结构的问题是,我将不得不查询很多表以显示特定用户的收藏夹。但这将使我可以轻松地将收藏夹分为不同的类别。 但是,如果我必须在一个页面上显示所有收藏夹并将它

  • 这是一个流行的问题,但我找不到一个满足我案例的答案。 我有布尔数组,其中我试着看一个数组是不是另一个数组的子集。 示例: 在本例中,不是两者的子集,但是的子集。 我尝试了一些从布尔的真值创建整数数组的麻烦尝试,但我仍然不确定如何验证它们是按顺序排列的(即一个子集)。 这个也没用。 目标是确定一个数组是否包含另一个数组的所有元素。在这种情况下,将索引4和5作为true,这在中也是true 但是如果我

  • 我有两个数据框,都包含英文和中文单词字符串,我想知道其中一个是另一个的子集:

  • 针对k8s部署微服务,我们是一个pod对应部署一个应用,还是多个pod对应一个应用呢?还是一个pod可以对应多个应用?