根据文档,UNSIGNED
列不接受负数。那么这意味着我应该为始终包含正值或空值的每一列使用 UNSIGNED
属性吗?
假设这个表结构:
// vote
+----+---------+---------+-------+------------+----------+
| id | id_post | id_user | value | code_table | time |
+----+---------+---------+-------+------------+----------+
在上表中,除 value
列外,所有列均为空或正数。那么我应该为除 value
列之外的所有列设置 UNSIGNED
属性吗?我对吗?或者使用 UNSIGNED
属性是基于另一个参数?
最佳答案
如果您确定除 value
列之外的所有列都将包含正值,那么您应该将其设置为 UNSIGNED
。使用 UNSIGNED 属性仅基于此参数作为您在列中期望的值。另请注意,UNSIGNED 的范围从 0 到 n,而 SIGNED 的范围约为 -n/2 到 n/2。
在内存方面,有符号和无符号类型占用相同的内存空间(INT 为 4 个字节)。
关于mysql - 我什么时候应该对列使用 UNSIGNED 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37567975/