当前位置: 首页 > 面试题库 >

在数据库中存储数组:JSON与序列化数组

秦时铭
2023-03-14
问题内容

使用ruby-on-rails,我想存储3个元素的数组:帖子的最后3条评论。我知道我可以将Comment表加入Post
1,但是我会避免出于扩展目的而进行大量的请求。

所以我想知道什么是存储这三个元素的最佳方法,因为我想在每次发表新评论时轻松地更新它们:删除最后一条评论并添加新评论。

正确的方法是什么?将其存储在序列化数组还是JSON对象中?


问题答案:

您可以使用ActiveRecord的serialize声明存储数组和哈希:

class Comment < ActiveRecord::Base
  serialize :stuff
end

comment = Comment.new  # stuff: nil
comment.stuff = ['some', 'stuff', 'as array']
comment.save
comment.stuff # => ['some', 'stuff', 'as array']

您可以指定对象类型应等于的类名(在这种情况下Array)。这更明确,也更安全。分配第一个值时,您也不必创建数组,因为您可以将其追加到现有(空)数组上。

class Comment < ActiveRecord::Base
  serialize :stuff, Array
end

comment = Comment.new  # stuff: []
comment.stuff << 'some' << 'stuff' << 'as array'

您甚至可以使用名为store的更整洁的版本:http
:
//api.rubyonrails.org/classes/ActiveRecord/Store.html

这应该使用内置方法处理您的用例。



 类似资料:
  • 问题内容: 已关闭 。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 在MySQL数据库和序列化数组中存储JSON数据的优缺点是什么? 问题答案: JSON 编码()和解码() PHP版本> = 5.0.0 嵌套上限为20。 PHP版本> = 5.2.3 嵌套上限为128。 PHP版本> = 5.3.0 嵌套上限为5

  • 问题内容: 我正在开发一个PHP应用程序,该程序需要将各种设置存储在数据库中。客户经常询问是否可以添加或更改/删除某些内容,这已导致表格设计出现问题。基本上,我有很多布尔字段,它们仅指示是否为特定记录启用了各种设置。 为了避免使表格混乱,我考虑将数据存储为序列化数组。我已经读过,这被认为是不好的做法,但是我认为这是使用这种方法的合理案例。 有什么真正的理由避免这样做吗? 任何建议表示赞赏。 谢谢。

  • 问题内容: 我正在尝试以android应用程序的形式创建一个小型课程聚合程序。 我的课程全部存储在Firebase实时数据库中,该数据库可从firebase控制台查看,并且一切正常。 问题是我已经编写了一个Java方法来连接到DB,从DB检索数据,将数据转换为Custom Java对象,将其附加到另一个Custom Java对象,然后将该对象保存到ArrayList中。 与数据库的连接已成功建立,

  • 我有一个通过ORM保存到数据库的对象。对象有一个字符串数组,每个对象的数组长度可以不同。我想知道在db中存储字符串数组的标准做法(例如,我是否应该将所有字符串存储在一个字段中作为csv等)?

  • 我是的初学者。现在,我正在尝试开发一个移动应用程序,但在将数据存储到数组列表中时遇到了一些问题。例如,数据如下所示 现在我使用的是一个名为的第三方库。要使用此库,必须以这种方式存储数据, 在这个中,id的道具是一个字符串,标签也是一个字符串。那么我如何像这样单独存储我的数据呢?例如,像这样 我已经尝试用地图的方法做到这一点。代码将是 但还是不行。 代码如下:

  • 问题内容: 大家好,我想在html页面上显示数据库表的全部内容。我试图先从数据库中获取记录并存储在其中,但是当我在html页面上返回数组列表时,它仅重复显示最后一条记录作为数据库表的计数。这是下面的代码: 问题答案: 尝试以下代码 这是我的模特班 这是我的查看方法