是否有必要在迁移中为字符串指定限制选项...
class CreateAccounts < ActiveRecord::Migration
def self.up
create_table :accounts do |t|
t.string :name, :limit => 64
end
end
end
这应该应用于DB中的所有字符串吗?有什么意义?
答案 0 :(得分:6)
字符串通常长度为255个字符,但并非所有数据库都以相同的方式处理字符串字段。例如,PostgreSQL可以创建不同大小的字符串列。
至少有两个很好的理由来指定字符串字段的值:
如果您需要一个字符串列来存储2个chr长度的国家/地区代码,为什么您希望数据库为......什么都不保留额外的253个字符?
另请注意,您应始终验证模型中字段值的长度。 如果您尝试创建名称超过最大长度的记录:
因此,始终validates_length_of
您的属性。
答案 1 :(得分:0)
首先想到的是 - 当你有数百万个帐户时,这个限制实际上会影响你的数据库的大小。