mysql - 将枚举存储为整数与字符串之间有区别吗?

标签 mysql ruby-on-rails ruby

我是否应该将标题、性别和称呼等选项存储为整数,或者它不相关,我可以将它们存储为字符串?

class User < ActiveRecord::Base
  enumerize :gender, in: [:male, :female]

  TITLE = { dr: 0, prof: 1, prof_dr: 2 }
  def title
    TITLE.key(read_attribute(:title))
  end

  def title=(t)
    write_attribute(:title, TITLE[t.to_sym])
  end
end

假设我有 2000 个用户,每个用户有 6 个可能的选项。

最佳答案

过去,当存储空间昂贵时,就有理由将字符串存储为数字。在当今时代,除了嵌入式应用程序(可能不应该运行 Rails)之外,没有必要,特别是考虑到您的示例数据库大小为 2000 个用户。

此外,如果将字符串存储为数字,则会有以下缺点:

  • 代码复杂性增加
  • 没有代码就无法“读取”的数据库(完成了一些数据库端口并编写了 Rails 作为后端数据分析的前端,这些都变得很重要。)

出于性能问题,请确保您的数据库 key 设置正确。

关于mysql - 将枚举存储为整数与字符串之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177471/

相关文章:

mysql - 本地MySql数据库导出

php - 使用 mysql 数据对分页表进行排序

php - 使用 php 将 mysql 转储导入到机器上

ruby-on-rails - 在 Windows 7 上安装 ImageMagick 和 rmagick

ruby - 如何在 irb 进程上运行 gdb 或 valgrind?

php - 为什么 MySQL 不接受这个值,或者为什么 php 不能正确传输它?

ruby-on-rails - 在Ruby on Rails表单中输入数字时的小数和逗号

ruby-on-rails - Ruby - 将星期几转换为整数

javascript - Rails 中的 Jquery 异步表单提交

ruby-on-rails - Rabl json 集合动态键