对于部分数据定义的疑问 #796
-
在尝试将NOJ转移到PostgreSQL上时发现了这个view里面的一段赋值。 upd:在比赛的可见性上也用了boolean,但是却定义了012三个数字,可能有数据库类型错误。 NOJ/resources/views/group/create.blade.php Line 184 in 9e774bc |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Public的1与2是一个BUG,应该使用1与0表示是、否,而不是1与2,将会在 他们并没有被映射为Eloquent模型的boolean类型,因此在MySQL、Oracle与MSSQL使用上是没有问题的,PostgreSQL由于支持Boolean,会产生问题,可见性也是同理。这是由于NOJ在一开始使用SQL进行数据库版本管理,迁移时使用了一个SQL转migration工具,该工具将tinyint(定义为1字节0~255数据范围)自动转换成了boolean,而系统的本意是使用1字节整形而非布尔型,因此造成了问题。 对于boolean的问题将会补丁修复为tinyinteger。 |
Beta Was this translation helpful? Give feedback.
Public的1与2是一个BUG,应该使用1与0表示是、否,而不是1与2,将会在
v1.0.0
修复。他们并没有被映射为Eloquent模型的boolean类型,因此在MySQL、Oracle与MSSQL使用上是没有问题的,PostgreSQL由于支持Boolean,会产生问题,可见性也是同理。这是由于NOJ在一开始使用SQL进行数据库版本管理,迁移时使用了一个SQL转migration工具,该工具将tinyint(定义为1字节0~255数据范围)自动转换成了boolean,而系统的本意是使用1字节整形而非布尔型,因此造成了问题。
对于boolean的问题将会补丁修复为tinyinteger。