我认真对待命名,因为默认情况下它甚至会在许多地方出现在用户面前。
我想创建一个名为 Group 的模型,它指的是类似于 Facebook 组的东西。
因为 group 很常见,我希望可以将它用作其他常用词(例如 date),但是……它是 SQL 中的保留字,也是 ActiveRecord 方法(即Model.group(*args)
)。
我真的找不到有效的(和我需要的通用的)同义词:在这种情况下我应该如何表现?“组”这个词有什么约定或任何常见的替代品吗?
我认真对待命名,因为默认情况下它甚至会在许多地方出现在用户面前。
我想创建一个名为 Group 的模型,它指的是类似于 Facebook 组的东西。
因为 group 很常见,我希望可以将它用作其他常用词(例如 date),但是……它是 SQL 中的保留字,也是 ActiveRecord 方法(即Model.group(*args)
)。
我真的找不到有效的(和我需要的通用的)同义词:在这种情况下我应该如何表现?“组”这个词有什么约定或任何常见的替代品吗?
聚会迟到了,但一位同事给我发了这个,我不得不纠正他。
解决方案是引用您的标识符。那么就没有问题了。在 Mysql 中,我们用反引号 (`) 引用:
MariaDB [some_db]> create view `group` as (select 1 as one);
MariaDB [some_db]> select * from `group`;
+-----+
| one |
+-----+
| 1 |
+-----+
在 Postgresql 中,您必须使用普通的双引号 (") 来代替:select * from "group";
。在 MSSQL 中,您使用方括号 ([]): select * from [group];
。
SQL中有很多保留字,可能会增加新的。除非您确定它们是免费的,否则请始终引用您的标识符。
默认情况下, Active Record应该引用所有标识符。如果它在某些情况下忘记了,那可能是一个错误。
我将添加一个形容词(即 PrivateGroup,因为我所有的组都是私有的)。
欢迎任何更好的想法。