【问题标题】:MySQL naming convention for schema and table in lowercase letter? [closed]小写字母的模式和表的MySQL命名约定? [关闭]
【发布时间】:2019-10-11 04:27:16
【问题描述】:

在 MySQL Workbench 8.0 中,我将表命名为 Smartphone Brand

但它在创建后自动命名为smartphonebrand,非常烦人,很难找到没有大写字母或空格字符的名称。

有人对 MySQL 中的模式和表有任何命名约定吗?

【问题讨论】:

  • “有人对 MySQL 中的数据库和表有任何命名约定吗?” 或多或少是 Schema Object Names
  • 理想情况下Smartphone Brand 应该是smartphone_brand,因为每次使用它时,空格都需要使用反引号,就像`Smartphone Brand` 一样,这也很烦人.. 但是我猜是意见或品味问题
  • dev.mysql.com/doc/refman/8.0/en/… " 最好采用一致的约定,例如总是使用小写名称创建和引用数据库和表。这建议使用约定以实现最大的便携性和易用性。”
  • 要添加到 @spencer7593 的评论中,我使用小写字母,用下划线替换空格,并且我倾向于避免在数据库、表和列名称中使用 utf8 字符作为瘟疫,因为我使用英语时很容易编程this 是我避免在数据库、表和列名称中使用 utf8 字符的原因之一
  • @TheImpaler:使用“区分大小写”标识符的 MySQL 数据库并不完全正确。这可能适用于 Linux 和特定存储引擎上的 --lower-case-table-names 系统变量的特定设置,但根据 MySQL 参考手册“底层操作系统的大小写敏感度起作用”。

标签: mysql mysql-workbench


【解决方案1】:

表名使用小写字母 (a-z)、数字 (0-9) 和下划线字符 (_)。

此约定提供了最佳的可用性和可移植性。这在此处的 MySQL 参考手册中有记录:

https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html

摘录:

为避免此类差异引起的问题,最好采用一致的约定,例如始终使用小写名称创建和引用数据库和表。建议使用此约定以实现最大的便携性和易用性。


标识为“智能手机品牌”的实体可以实现为表名smartphone_brand


我倾向于遵循的另一个惯例是以单数命名表;命名表中的一行代表什么。为什么我将表命名为smartphone_brands

还要使用完整的单词并避免缩写。还要避免使用对象类型标识符(例如 tbl_smartphone_brandsmartphone_brand_table)为表名添加前缀/后缀。

--

当然,也有可能按照其他惯例制作一个成功的软件项目。我遵循的约定只是一种可能的模式。

作为一名行业专业人士,一旦我们在其他数据库标识符约定方面遇到重大问题(例如,从 Windows 到 Linux 的数据库应用程序的简单移植变成了费力的工作),这本可以通过以下方式避免遵循不同的惯例,我们发现那些我们目前可能认为是小麻烦的功能会极大地节省时间。

猜你喜欢
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多