即将迁移 :string 但我想 :text 可能会更好。性能/目的?

发布于 2024-10-11 07:02:29 字数 512 浏览 10 评论 0原文

class CreateScrapes < ActiveRecord::Migration
  def self.up
    create_table :scrapes do |t|
      t.text :saved_characters
      t.text :sanitized_characters
      t.string :href

      t.timestamps
   end
  end

  def self.down
    drop_table :scrapes
  end
end

我即将 rake db:migrate,并且正在考虑属性类型是否应该使用 textstring。由于 saved_characterssanitized_characters 将是具有数千个 unicode 值的数组,它基本上是逗号分隔的数据,我不确定 `:text' 是否真的是正确的方法这里。你会怎么办?

class CreateScrapes < ActiveRecord::Migration
  def self.up
    create_table :scrapes do |t|
      t.text :saved_characters
      t.text :sanitized_characters
      t.string :href

      t.timestamps
   end
  end

  def self.down
    drop_table :scrapes
  end
end

I'm about to rake db:migrate and I'm think about the attribute type if I should be using text or string. Since saved_characters and sanitized_characters will be arrays with thousands of unicode values, its basically comma delimited data, I'm not sure if `:text' is really the right way to go here. What would you do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小梨窩很甜 2024-10-18 07:02:29

假设您使用 MySQL,:string:text 之间的真正区别在于长度。 Rails 对 :string 列使用 varchar 列类型,并对 :string 列设置 255 个字符的限制。 :text 令人惊讶的是,使用了 text 列。

对我来说,这表明 :string 对于您的列来说是一个非常糟糕的选择,因为它们可能超过 255 个字符。

Assuming you're on MySQL, the real difference between :string and :text is length. Rails uses the varchar column type for :string columns, and sets a 255 character limit on :string columns. :text, usuprisingly, uses the text column.

To me, this suggests that :string would be a really bad choice for your columns, as they are likely to exceed 255 characters.

夏の忆 2024-10-18 07:02:29

:string 只有 255 个字符。你可能想要 :text 因为你提到了数千。

:string is only 255 characters. you probably want :text since you mention thousands.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文