2016-06-01 49 views
2

根據文檔,UNSIGNED列不接受負數。那麼是不是應該爲每個總是包含正值或空值的列使用UNSIGNED屬性?什麼時候應該完全使用UNSIGNED屬性作爲列?

假設該表結構:

// vote 
+----+---------+---------+-------+------------+----------+ 
| id | id_post | id_user | value | code_table | time | 
+----+---------+---------+-------+------------+----------+ 

在表的上方,所有列都是零或正除了value柱。那麼我應該爲value列中的所有列設置UNSIGNED屬性嗎?我對嗎?或者使用UNSIGNED屬性是基於另一個參數?

回答

1

如果您確定除value列以外的所有列都將包含正值,那麼您應該將其設置爲UNSIGNED。使用UNSIGNED屬性僅基於此參數作爲您在列中預期的值。還要注意UNSIGNED的範圍從0到n,其中SIGNED的範圍是從-n/2到n/2。

在內存方面,帶符號和無符號類型都採用相同的內存空間(INT爲4字節)。

+1

我明白了。謝謝.. upvote – stack

1

根據您將存儲在列中的值使用UNSIGNED屬性。

舉例來說,ID通常是無符號值(這只是一個約定,沒有什麼能夠防止你有負ID值)。

另一方面,age列將始終包含正值,並且UNSIGNED值非常適合它。

+0

明白了。謝謝.. upvote – stack

相關問題