Luis Veliz Asked: 2020-10-07 19:13:27 +0800 CST 2020-10-07 19:13:27 +0800 CST 2020-10-07 19:13:27 +0800 CST 我应该在数据库中使用什么命名约定? 772 我想知道哪种表命名约定更合适以及为什么。 mysql 3 Answers Voted Best Answer endika_iglesias 2020-10-07T23:35:26+08:002020-10-07T23:35:26+08:00 我可以告诉你我用的是什么。我没有看到任何规则表明它必须是这种方式......或其他...... 当然总是用英语。 表名总是大写字母和复数形式。 字段名称总是小写和单数。 大写和小写字母的原因是为了在 SQL 中快速识别哪个是表,哪个是引用的字段。在具有多个 JOIN 的选择中,我认为很明显,像这样使用它并不是一个坏主意。 单数或复数的动机。这些表是否存储了or的多条记录?这对我来说更好用户 ,每条记录都有还是?嗯,我觉得说名字更合适。除非该字段是外键,否则使用小的标识符是合适的,这些标识符可以直观地帮助您识别具有比简单数据更多的内容的字段。例如,该表将有一个字段(既不是,也不是奇怪的东西)。对外部表的单一引用,表示您将 ID 存储在那里,UserUsersnamenamesCOMMENTSuser_idusersid_usuarioUSERSuser_id 在中间表中,例如任何一对多的关系,例如usuarios(USERS)和所有上传的照片(PHOTOS)。我尊重大写并使用符号_连接USERS_PHOTOS。 在某些情况下,在表或字段的名称中,通常使用前缀来标识信息来自哪个项目或服务,或者该信息将用于何处。在表格的情况下,我不喜欢使用前缀,但在字段中我喜欢使用 ( siebel_id, joomla_id, twitter_token...) 但是,对此没有固定的规则。这就是为什么我遇到了诸如 table 之类的东西,或者类似或更好的Población相关表。我认为,为了不伤害任何人,最好避免重音和“罕见”的连接字符,如空格、、、、...Población?CiudadCódigos postales?-+ Julian Castiblanco 2020-10-08T14:46:52+08:002020-10-08T14:46:52+08:00 对我来说,Sql Server 的一位老师是 Phinal Dave,他有这些标准的详细文档是http://blog.sqlauthority.com/2007/06/06/sql-server-database-coding-standards-and-指南-完整列表下载/ Byron 2020-10-08T06:16:47+08:002020-10-08T06:16:47+08:00 这是一个相对的问题,因为与编程语言一样,答案不是唯一的,每个人都可能更喜欢一种或另一种约定。 就我而言,无论数据库引擎如何,我都使用复数形式的表名和单数形式的列名,在这两种情况下都使用PascalCase。如果是我的选择,英文名称并且只使用一个字段作为主键,该字段始终称为Id数字或 UUID(取决于表是使用逻辑删除还是非常高并发)。 外键带有表名,后跟 Id,当它们是单个关系时(例如DetallesFactura和Facturas)。如果它有多个关系(例如Facturas和Usuarios UsuarioCreaId, UsuarioAnulaId),我会用表的名称,一两个词来表示该字段与另一个相同类型的关系的区别。 在SqlServer中,大多数对象接受最多 128 个名称,所以我从来没有遇到过这些功能的问题。 在Oracle的情况下,情况有所改变,最大允许为 30 个字符,虽然名称可以使用小写,但习惯是所有内容都使用大写,因此我们将单词分开 _并使用首字母缩略词或缩写词-对多关系表,或具有复合名称。 另一个考虑因素,可能也是 SQLServer 使用这种方式的原因,是我通常使用 ORM 进行数据库访问,因此生成的代码保持了我们在C#. 如您所见,这是风格问题。在这里,您将找到更多关于编程语言中使用的命名约定的详细信息。同样在这个问题上,其中包括非常有趣的解释。
我可以告诉你我用的是什么。我没有看到任何规则表明它必须是这种方式......或其他......
大写和小写字母的原因是为了在 SQL 中快速识别哪个是表,哪个是引用的字段。在具有多个 JOIN 的选择中,我认为很明显,像这样使用它并不是一个坏主意。
单数或复数的动机。这些表是否存储了or的多条记录?这对我来说更好用户 ,每条记录都有还是?嗯,我觉得说名字更合适。除非该字段是外键,否则使用小的标识符是合适的,这些标识符可以直观地帮助您识别具有比简单数据更多的内容的字段。例如,该表将有一个字段(既不是,也不是奇怪的东西)。对外部表的单一引用,表示您将 ID 存储在那里,
User
Users
name
names
COMMENTS
user_id
users
id_usuario
USERS
user_id
在中间表中,例如任何一对多的关系,例如
usuarios
(USERS
)和所有上传的照片(PHOTOS
)。我尊重大写并使用符号_
连接USERS_PHOTOS
。在某些情况下,在表或字段的名称中,通常使用前缀来标识信息来自哪个项目或服务,或者该信息将用于何处。在表格的情况下,我不喜欢使用前缀,但在字段中我喜欢使用 (
siebel_id
,joomla_id
,twitter_token
...)但是,对此没有固定的规则。这就是为什么我遇到了诸如 table 之类的东西,或者类似或更好的
Población
相关表。我认为,为了不伤害任何人,最好避免重音和“罕见”的连接字符,如空格、、、、...Población?Ciudad
Códigos postales
?
-
+
对我来说,Sql Server 的一位老师是 Phinal Dave,他有这些标准的详细文档是http://blog.sqlauthority.com/2007/06/06/sql-server-database-coding-standards-and-指南-完整列表下载/
这是一个相对的问题,因为与编程语言一样,答案不是唯一的,每个人都可能更喜欢一种或另一种约定。
就我而言,无论数据库引擎如何,我都使用复数形式的表名和单数形式的列名,在这两种情况下都使用PascalCase。如果是我的选择,英文名称并且只使用一个字段作为主键,该字段始终称为
Id
数字或 UUID(取决于表是使用逻辑删除还是非常高并发)。外键带有表名,后跟 Id,当它们是单个关系时(例如
DetallesFactura
和Facturas
)。如果它有多个关系(例如Facturas
和Usuarios
UsuarioCreaId
,UsuarioAnulaId
),我会用表的名称,一两个词来表示该字段与另一个相同类型的关系的区别。在SqlServer中,大多数对象接受最多 128 个名称,所以我从来没有遇到过这些功能的问题。
在Oracle的情况下,情况有所改变,最大允许为 30 个字符,虽然名称可以使用小写,但习惯是所有内容都使用大写,因此我们将单词分开
_
并使用首字母缩略词或缩写词-对多关系表,或具有复合名称。另一个考虑因素,可能也是 SQLServer 使用这种方式的原因,是我通常使用 ORM 进行数据库访问,因此生成的代码保持了我们在
C#
.如您所见,这是风格问题。在这里,您将找到更多关于编程语言中使用的命名约定的详细信息。同样在这个问题上,其中包括非常有趣的解释。