Chr*_*ian 4 php mysql database storage doctrine-orm
我的数据库中经常有字段存储"数字或无限".示例可以是maxFileSize,maxUsers等等.应该可以设置最大值或者根本不限制它.我目前有时null用来表示"无限/无限制",有时使用-1.
我想知道是否有任何理由使用这一个或另一个.为了记录,我使用PHP/MySQL/Doctrine/Symfony,如果这很重要.
编辑:
我不是在征求意见,而是要求事实(正如你在已经给出的答案中看到的那样)与-1或的使用有关null.这些可能包括速度,查询复杂性,数据库大小等.
如果要使用整数来存储值,并且希望存储一个非常大的值,则使用2,147,483,647.这是您可以在该字段中放置的最大值,因此它与字段允许的一样接近无穷大.
-1和-1都存在问题NULL.例如,可能还没有设置该值.这似乎NULL比代表一些任意值更合理.使用特殊值需要复杂的逻辑:
where users < maxusers or maxusers is null
where users < maxusers or maxusers = -1
Run Code Online (Sandbox Code Playgroud)
这种专门的逻辑使查询更难以优化.如果使用可以存储在字段中的最大值,则不会出现此问题.
顺便说一句,我不经常遇到这个数字问题,但它与日期很常见.表格中经常出现的"结束日期"变化很小,如"9999-01-01"或"4195-01-01".这些代表了未来的一些任意点.并且,它们通常比使用更容易进行优化NULL.
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |