【问题标题】:Ruby Set and Ruby Array, are they stored in the same way using postgresql?Ruby Set 和 Ruby Array,它们是否使用 postgresql 以相同的方式存储?
【发布时间】:2020-10-22 06:41:41
【问题描述】:

我在官方文档中找不到与我的问题相关的任何信息。

情况是,我需要在我的 ruby​​ 对象上存储一个 id 列表,所以我决定使用集合而不是数组来避免重复并更快地包含?回答。

问题是,当我尝试使用设置为 Set 的此属性保存对象时,是否会遇到 postgresql 问题?

我希望我的问题很清楚。

提前致谢。 问候。

编辑:

我解决了。 我从一开始就做了我应该做的事情,用 2FK 创建表,就是这样!

问题解决了!

【问题讨论】:

  • 提供一个更具体的模型示例会很有帮助。你写过代码吗?还有“我会有什么麻烦吗?”是一个非常模棱两可的问题,因为我们不知道“麻烦”是什么意思。
  • 其实我不是很明白你的问题,但是:如果你只是想存储你的Ruby对象并在以后检索它们(即不对它们执行SQL查询),你可以marshal他们成一个字符串并存储该字符串。对于SetArray 之间的关系:如果这对您有帮助,您可以将Set 转换为Array 并返回。

标签: arrays ruby postgresql set


【解决方案1】:

PostgreSQL 对 Ruby 一无所知。您不能在 PostgreSQL 中存储 Ruby 对象。您必须首先将 Ruby 对象翻译成 PostgreSQL 可以理解的内容(文本、数字、clob、blob 等)。

换句话说:对象存储在 PostgreSQL 中的方式与您编写存储它的代码的方式完全相同。

【讨论】:

    【解决方案2】:

    我尝试使用 sqlite3 存储一个数组,但没有成功。在我的教程中,他们确实提到可以使用 Postgres 将数组存储在列中。

    但是,为模型属性存储数组的更好方法是Active Record Associations

    has_many 关联可能是您正在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      • 2014-12-23
      相关资源
      最近更新 更多