【发布时间】:2013-01-14 11:41:41
【问题描述】:
在我已经看到的所有应用程序/示例中(例如 wordpress)。列表名称使用下划线而不是驼峰式大小写。我想知道是否存在一些技术上的不兼容问题或者这是一个约定?它是依赖于系统平台(Linux/Windows)还是 sql 方言(Mysql,postgreSQL,DB2,Oracle,...)。例如,在下表中,我使用了骆驼案,我还没有遇到任何问题/警告!如果我应该/必须重构我的表,我为什么应该/必须这样做?
SQL 是否对表/列名不区分大小写?方言呢?
CREATE TABLE `testuser` (
`id` bigint(20) NOT NULL,
`user_type` varchar(8) NOT NULL,
`username` varchar(30) DEFAULT NULL,
`password` varchar(128) DEFAULT NULL,
`regDate` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
【问题讨论】:
-
谁是“每个人”?我不使用下划线。
-
我们使用下划线,但使用 TBL_ALL_CAPS!没办法,我猜 ;)
-
你不能做任何事情。主要是个人喜好或公司标准决定如何命名表/列。是的,如果您的数据库区分大小写,camelCase 可能会有所作为。至少 MS SQL Server 是这样。
-
SQL 是否区分大小写取决于正在使用的排序规则。并且不同数据库系统的默认排序规则各不相同(有些有 a 默认值,有些允许您在安装过程中选择默认值)。所以,这取决于。
-
好的!我把大家改成“通常”!但我举了一个例子 - wordpress - 另一个例子可以是 mediawiki 看到这个例子:mediawiki.org/wiki/Manual:Category_table 至少根据我在不同的开源项目中看到的。这是一种经常出现的模式,但我只看到过开源项目,因为我从未在一家制作封闭源项目的公司工作过。
标签: sql case-sensitive case-insensitive