什么列类型最适合在MySQL数据库中用于布尔值?我用,boolean但我的同事使用tinyint(1).
我不想在这里触发一场宗教战争,但似乎有两种思路可以在数据库中表示布尔值.有人说bit是适当的数据类型,而其他人认为tinyint更好.
我所知道的唯一区别是这些:
bit:存储大小为1位,可能的值为0或1tinyint:存储大小为1个字节,可能的值为0-255当您需要表示布尔值时,哪种数据类型更好?是tinyint值得的额外开销"以防万一"你需要值> 1?
我的MySQL数据库中有一个列为TINYINT(1)的列.我需要在这个列中存储实际的整数.问题是,由于列类型,Rails 4.1假定此列仅包含布尔值,因此它在写入数据库时将除0或1之外的所有值都转换为0.
我不想简单地禁用布尔仿真,因为我们的数据库中有许多列,我们使用TINYINT(1)来实际表示一个布尔值.我目前无法更改MySQL中的列类型.
如何强制Rails 4.1绕过类型转换步骤并直接写入数据库呢?
(这个来自Rails 4.1源代码的摘录可能有一些用处:https://github.com/rails/rails/blob/4-1-stable/activerecord/lib/active_record/attribute_methods/write.rb)