Jos*_*unt 24 database language-agnostic database-design
在数据库中定义数据类型时,我总是遇到选择是使用整数还是字符串来存储某些"数字"数据的问题.
说我建立然而, 另一个 地址 簿,有一个职位代码字段.如果邮政编码始终是4位数字,我将其存储为哪种数据类型?整数还是字符串?从技术上讲,它是一个整数,但我没有对它进行任何计算,我只是将它吐出一张表.如果我想通过邮政编码对表格进行排序,您的意见会改变吗?
现在,我不是傻瓜.我确实认识到对整数的有效需求,例如页面查看和唯一用户或登录用户和访客用户.但是如何存储torrent中有多少文件呢?整数还是字符串?
myp*_*edk 38
在我的国家,邮政编码也总是4位数.但第一个数字可以为零.
如果将"0700"存储为整数,则可能会遇到很多问题:
从技术上讲,我们的邮政编码实际上是字符串,即使它总是4位数.
您可以将它们存储为整数,以节省空间.但请记住,这是一个简单的数据库技巧,并注意前导零.
但是如何存储torrent中有多少文件呢?整数还是字符串?
这显然是一个整数.
The*_*TXI 28
我总是使用以下规则:
如果您计划对其执行数学计算(添加/减去/等),请将其设为整数或其他数值数据类型.
如果您不打算在该字段上执行任何类型的数学计算,请将其存储为字符串.
在Zip代码的例子中,您永远不应该有时间需要添加到邮政编码,或者减去两个邮政编码或将两个邮政编码相乘.数学函数通常不用于邮政编码,因为它们用作标识符而不是数量.因此,您应将邮政编码存储为字符串数据类型
Enr*_*rru 10
在我看来,对于邮政编码,你必须使用字符串,因为你可以使用零(09100)标记的邮政编码,如果你使用整数,它将是9100:排序不是问题,因为仍然有一个字母顺序(' 09100'来自'09101').对于存储文件编号,我希望有一个整数,因此您在编制/减少其编号时没有任何问题.所以整数vs字符串取决于你的用途!
这是一个语义问题.您正在尝试确定适当的存储数据类型,这可能是一个棘手的问题.最好的经验法则是,如果需要将数据用作整数,则将数据存储为整数.
换句话说,由于您永远不会将邮政编码用作数字,因此将其存储为一个没有意义.数据的外观并不重要,重要的是它是什么.邮政编码是一个数字吗?不,这是一串恰好由完全数字字符组成的字符串.因此,邮政编码最好存储为字符串.
就邮政编码而言,这是典型的英国邮政编码:
EC2R 6PK
Run Code Online (Sandbox Code Playgroud)
在大学里,我的数据库讲师告诉我一些困扰我的事情,并且在15年后仍然存在:
如果对其执行算术运算,请将其存储为数字.否则它是一个字符串.
坦率地说,我不认为你的建议会出错.
显然你不对邮政编码进行算术运算,因此它们就是字符串.
邮政编码不是数字:它是代码或标识符.这同样适用于电话号码.
torrent中的文件数是整数.
尤其是,在这种情况下,您可以创建一个CHECK CONSTRAINT LIKE '[09][09][09][09]'以在数据库级别保持数据正确.