我想为每个模型中使用的每个属性使用可能的最小数据类型。
例如我有一个Sauce模型,我想通过以下属性使用过滤器:hot_or_not:boolean,name:string,
但我也考虑允许用户按照墨西哥,印度,中国,韩国,加勒比地区等来源过滤,但由于这些将是少数可能的原始类别,我希望能够仅使用它来存储它一个字节。
也许这些起源中的每一个都可能是Char键的值,例如I =>印度。并且在数据库中只存储Char键。
答案 0 :(得分:3)
怎么样
t.string :name, :limit => 1, :null => false
答案 1 :(得分:1)
ActiveRecord中没有直接char
类型。最接近的是string
,它在大多数数据库后端中映射到varchar
。它会占用更多空间,但通常不会成为问题。
This question列出了可用的数据类型及其在各种DBMS中的映射。
答案 2 :(得分:1)
您可以在迁移文件中使用这样的内容。
t.string :column_name, limit: 10