我有时在 clojure 工作,这是一种促进在变量名中使用破折号的语言(我可以说比 Java camelCasing 更具可读性)。更进一步,我赞成在一个数据库实现中使用列名奇偶校验,以便我的代码中的列名与数据库中的列名相同。我选择的数据库支持这一点。我想知道这将如何影响使用其他语言的开发人员,他们可能必须访问相同的表:
使用其他通用语言的开发人员是否必须通过特殊的努力来适应阅读包含破折号的列名称?例如,我曾经听到 PHP 开发人员对资源名称中的连字符大发雷霆。哪些编程语言需要对破折号包含的列名称进行额外处理?这些语言需要付出多大的努力?
我没有 clojure 的经验,但它看起来与 LISP 非常相似。不确定哪些语言会遇到麻烦,但每个主要的 DBMS 都会。我用 Mariadb 测试过:
和 DB2:
我怀疑所有其他 DBMS:s 也会有问题。你可以引用你的方式:
但我强烈反对这样做。
我会在 Clojure 中创建一个映射器,将所有 DBMS 对象的“-”转换为“_”,反之亦然。