php – 使用`null`或`-1`来表示数据库的整数列中的“无限”更好
发布时间:2020-12-13 17:48:20 所属栏目:PHP教程 来源:网络整理
导读:我的数据库中经常有字段存储“数字或无限”.示例可以是maxFileSize,maxUsers等.应该可以设置最大值或者根本不限制它. 我目前有时使用null来表示“无限/无限制”,有时使用-1. 我想知道是否有任何理由使用这一个或另一个.为了记录,我使用PHP / MySQL / Doctrin
我的数据库中经常有字段存储“数字或无限”.示例可以是maxFileSize,maxUsers等.应该可以设置最大值或者根本不限制它.
我目前有时使用null来表示“无限/无限制”,有时使用-1. 我想知道是否有任何理由使用这一个或另一个.为了记录,我使用PHP / MySQL / Doctrine / Symfony,如果这很重要. 编辑: 我不是要求意见,而是要求事实(正如你在已经给出的答案中所看到的)与-1或null的使用有关.这些可能包括速度,查询复杂性,数据库大小等. 解决方法
如果要使用整数来存储值,并且希望存储一个非常大的值,则使用2,147,483,647.这是您可以在该字段中放置的最大值,因此它与字段允许的一样接近无穷大.
-1和NULL都存在问题.例如,可能还没有设置该值.对于NULL而言,这似乎更合理地用于表示某个任意值.使用特殊值需要复杂的逻辑: where users < maxusers or maxusers is null where users < maxusers or maxusers = -1 这种专门的逻辑使查询更难以优化.如果使用可以存储在字段中的最大值,则不会出现此问题. 顺便说一句,我不经常遇到这个数字问题,但它与日期很常见.表格中经常出现的“结束日期”变化很小,如“9999-01-01”或“4195-01-01”.这些代表了未来的一些任意点.并且,它们通常比使用NULL更容易进行优化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |