新手问题 关于 null 和空串处理在 controller 层和数据库层处理的问题

humiaozuzu · 2014年01月23日 · 最后由 allenfantasy 回复于 2014年02月08日 · 3225 次阅读

第一个问题是,比如用户的 description,在他没有填时,我应该存为 NULL 还是空串呢?返回的时候(json 格式),应该返回空串还是 null 呢?

第二个问题是 客户端使用表单和 json 上传数据时,分别用什么呢?客户端用空和 json 用 null 吗?

第三个问题 还是用户的 description,客户端更新的时候(用户没有填 description),如果使用的表单,服务端得到的是空串,服务端发现空串选择不更新此字段到数据库。第二次用户将自己的 description 删除了,提交表单中 description 依然是空,但是我之前选择 description 空时不填入数据库,所以用户此次更新 description 就会失败。这里我应该采取什么策略呢?客户端可以选择用表单或者 json。

我知道实际的问题可能要分情况讨论,或者 2 个情况都会用到。自己的项目这一块处理的很糟糕,恳请各位指导一下,如果能带上一些实际的例子就更好了

匿名 #1 2014年01月23日
  1. 好像 textarea 如果为空,他不会是 NULL,只会是空字符串
  2. 同上
  3. 完全没看懂

个人感觉没有必要把 Description 这种 text 类型的字段再加判断,如果blank?就写入 nil,不是又多一个步骤?感觉意义不大。

2 楼 已删除

如果不填的话,统一用空串表示 description 就可以了吧?如果需要验证非空串的话(假定用 Rails)

def User < ActiveRecord::Base
   validates_presence_of :description
end
需要 登录 后方可回复, 如果你还没有账号请 注册新账号