找回密码
 立即注册

QQ登录

只需一步,快速开始

maolin1

初级会员

26

主题

70

帖子

468

积分

初级会员

积分
468
maolin1
初级会员   /  发表于:2022-6-23 10:43  /   查看:2546  /  回复:9
现在应用场景是:数据库设计中,我们为了简化程序的操作,对于折扣比例不是必须输入的字段,避免处理值为null的情况,字段被定义为必填默认为0,这种情况业务不是必填数据库字段设计为必填是,我们一定会指定默认值的。但是现在:在活字格页面中绑定这个字段,但是这个这段在业务中不是必填,用户没有输入的话,无法存盘,报:cannot be null。 据说现在的方法就是,必须页面上再次指定默认值。 请问,活字格平台在拼装Insert语句的时候,发现值为null的字段,默认就不拼装进insert语句,才是最合理的处理。 不然,现在的处理方式,需要开发人员重复在多个地方设置。

9 个回复

倒序浏览
lwt悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-6-23 11:52:41
沙发
那有时要写null怎么办呢,如一个日期字段更改为空时就要写null
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-23 12:17:37
板凳
老板,之所以这样设计跟楼上说的比较类似,
有时候客户就是需要存null,如果这样设计的话,不是一个大众化设计了,
这种的话,也可以在添加数据的时候,自己判断,如果为空就赋另外的值
回复 使用道具 举报
maolin1
初级会员   /  发表于:2022-6-23 12:39:44
地板
lwt 发表于 2022-6-23 11:52
那有时要写null怎么办呢,如一个日期字段更改为空时就要写null

如果要写入null,数据库就不会设置为必填了。就是为了不处理null和0这两种情况,简化为指处理0的情况。比如:日期字段你要存放null,也可能存放"",就不要设计为必填了,也没有默认值。 我们现在要处理数字数据,在用这种数据运算的时候有null和0两种,就麻烦很多,就只限定处理0不处理null。
回复 使用道具 举报
maolin1
初级会员   /  发表于:2022-6-23 12:44:23
5#
现在不讨论为什么这么设计,目前所有的数据库,都是支持必填,设置默认值的处理的。既然数据已经有这个处理了,我们最好能借用数据库原生的处理。并且平台处理在遇到这种为null的字段,不处理的效果,就是我们想要的效果。为何要我们重复在页面设置一遍呢?
回复 使用道具 举报
maolin1
初级会员   /  发表于:2022-6-23 13:19:22
6#
本帖最后由 maolin1 于 2022-6-23 13:21 编辑
Joe.xu 发表于 2022-6-23 12:17
老板,之所以这样设计跟楼上说的比较类似,
有时候客户就是需要存null,如果这样设计的话,不是一个大众化 ...

我们数字类字段都要单独写赋值语句了。 varchar还好,null和""的处理比较接近。或者数字类型,平台在处理的时候,在页面的值是null的时候,始终转换为0,这个没有问题嘛?  应该没有数字类型,必须存入null的情况吧?
回复 使用道具 举报
maolin1
初级会员   /  发表于:2022-6-23 14:26:53
7#
更正下,重新准确描述下。 数字类型,能否在绑定字段的情况下,界面值为null的时候,将值null给为0? 若不能一刀切,是否可以做出开关项设置? 每个业务都要手动处理确实影响效率。
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-23 18:16:06
8#
大佬,是不是可以给前端绑定这个字段的单元格设置默认值呢,这样感觉更方便一点的
回复 使用道具 举报
maolin1
初级会员   /  发表于:2022-6-24 15:09:27
9#
Lay.Li 发表于 2022-6-23 18:16
大佬,是不是可以给前端绑定这个字段的单元格设置默认值呢,这样感觉更方便一点的

测试了,绑定默认值不能搞定。 举个例子,这个字段是记录科室id,但是科室不是必填的,用户没有选的时候是0,但是科室id都是大于0的值。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2022-6-24 17:37:07
10#
maolin1 发表于 2022-6-24 15:09
测试了,绑定默认值不能搞定。 举个例子,这个字段是记录科室id,但是科室不是必填的,用户没有选的时候 ...

这种情况的话,您是想在数据库中存上null还是空呢,
都可以在存之前在命令中或者页面上做一个判断,
然后把判断之后的值存到数据库中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部