请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

null值对于日期类型

在使用日期类型,需要显示时间是无限的,例如某个活动结束时间是无限,原来是使用一个单独的字段来判断这条记录结束时间是否为无限,但是如果有很多日期都可以设置无限,那么就要多维护很多字段。
我后来使用的方法是把将这个字段设为null值,如果前端发现有null值,就返回无限,但是老师说尽量少使用null,那么类似这样日期有无限显示的需求,除了加一个字段进行判断和设置为null,还有什么其他办法吗,如果有,希望老师可以给我一些其他思路

正在回答

1回答

同学你好:

    我理解你这里的意思,不过,很多事情都是相对的,允许 NULL 的列当然是不建议的,但是,如果是实在不可避免,那么,设置为 NULL 也是可以的。毕竟,在查询和索引时,只是会对这一列有些“副作用”,但实际上,对整张表或者你的业务系统来说,影响不大,几乎可以忽略不计。

    那么,如果确实是不想某一列允许 NULL,针对于你这里的业务场景,我们可以怎么做呢?我这里给你个实现方案:

    如果这一列是时间类型,那么,设置为一个未来最大的时间(当前列数据类型支持的)或者是设置一个过去的最小时间,比如 1970 年。那么,你在使用时,判断下这个时间,如果是 MAX 或者是 MIN,返回给前端 NULL 即可。

    可能你会问:如果设置为最大的未来时间,例如 2040 年,到那个时间怎么办呢?我会告诉你:不要想太多,20 年以后,这个业务系统也许早就不存在了。认准当下,用最简单的办法解决当下的事情,会给你带来时间上、效率上的提升。


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

2 回复 有任何疑惑可以回复我~
  • 提问者 慕神3049327 #1
    受益匪浅
    回复 有任何疑惑可以回复我~ 2020-10-03 16:36:34
  • Ans217 #2
    老师你好,你的回答我想问一下,假设我在一些电商业务中设置商品的一些赠品数量,设置它的最大领取数量为无限,那也可以设置为999999之类的么
    回复 有任何疑惑可以回复我~ 2020-11-08 23:03:31
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号