当前位置: 首页 > 面试题库 >

MySQL是否有命名约定?

华君浩
2023-03-14
问题内容

这是我的方法:

  1. 表名是小写,下划线的用途来分隔词语,并且是单数(例如foofoo_bar
  2. 我通常(并非总是)具有自动增量PK。我用下面的约定:tablename_id(例如foo_idfoo_bar_id等)。
  3. 当表包含作为外键的列时,我只需从它来自的任何表中复制该键的列名。例如,假设表格foo_bar具有FK foo_idfoo_id的PK foo)。
  4. 在定义FK来强制引用完整性时,我使用以下代码:(tablename_fk_columnname例如,扩展示例3,它将是foo_bar_foo_id)。由于这是表名/列名的组合,因此可以保证它在数据库中是唯一的。
  5. 我按如下顺序排列列:PK,FK,然后按字母顺序排列其余列

有没有更好,更标准的方法来做到这一点?


问题答案:

我首先要说的是:保持一致。

我认为您在问题中概述的约定几乎都在那里。不过有几点评论:

我认为第1点和第2点很好。

第3点-不幸的是,这并不总是可能的。考虑一下您将如何处理一个foo_bar包含列foo_id并且another_foo_id都引用foofoo_id列的表。您可能要考虑如何处理此问题。虽然这是一个极端的情况!

第4点-与第3点类似。您可能希望在外键名称的末尾引入一个数字,以适应具有多个引用列的情况。

第5点-我会避免这种情况。它给您带来的好处很少,以后要在表中添加或删除列时,将变得很头疼。

其他一些要点是:

索引命名约定

您可能希望引入索引的命名约定-
这对于您可能要执行的任何数据库元数据工作都将有很大的帮助。例如,您可能只想调用索引,foo_bar_idx1或者foo_idx1-完全由您决定,但值得考虑。

单列名称与复数列名称

在列名和表名中解决复数和单数的棘手问题可能是一个好主意。这个主题经常引起数据库界的激烈争论。对于表名和列,我会坚持使用单数形式。那里。我说过了

这里最主要的当然是一致性!



 类似资料:
  • 为了在跨API开发中向开发者提供一致的开发体验,所有的命名应该保证: 简单 直观 一致 这适用于接口、资源、集合、方法以及消息的命名。 因为很多开发者并非以英语作为母语,所以命名约定的目标之一是确保大多数开发者可以更容易理解 API。对于方法和资源,我们鼓励使用简单、直观和一致的单词来命名。 API 中的命名应该使用正确的美式英语。例如,使用美式英语的 license 而非英式英语的 licenc

  • 在本节,我们不会讨论适用于大规模和可维护的最佳 CSS 命名方案,因为这不仅仅超过了个人的能力范围,也不是一个Sass样式指南可以解决的问题。我个人推荐遵从 CSS Guidelines 的建议。 良好的命名对保持整体代码的一致性和可读性非常重要,在 Sass 中可以命名的地方如下: 变量; 函数; 混合宏。 由于 Sass 占位符遵循和类名相同的命名模式,因此被视为常规的 CSS 选择器,也就在

  • 函数名 小技巧 使用小写字母,并用下划线分隔单词。使用双冒号 :: 分隔库。函数名之后必须有圆括号。关键词 function 是可选的,但必须在一个项目中保持一致。 如果你正在写单个函数,请用小写字母来命名,并用下划线分隔单词。如果你正在写一个包,使用双冒号 :: 来分隔包名。大括号必须和函数名位于同一行(就像在Google的其他语言一样),并且函数名和圆括号之间没有空格。 # Single fu

  • 问题内容: 我的完整变量名称是“唯一代码”,但是我希望此变量是“ ucode” -ish。 那么考虑Java命名约定是正确的吗? 编码 uCode UCode 问题答案: 请参阅编码约定。对于变量,建议使用驼峰式大小写。回覆。命名,我本以为 将是最合乎逻辑的选择(我知道那不在您的选择列表中)。任何变体在我看来都是 unicode 的缩写,我认为这是一种误导。以上不是一个太长的名称(例如,它不是Ab

  • 问题内容: 按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我知道关于哪种命名约定最适合JavaScript的争论很多(也许没有争议,但至少有争论)。 您如何命名变量,函数,对象等? 我将对此保留自己的想法,因为我已经

  • 问题内容: JSON命名有标准吗?我看到大多数示例都使用所有小写字母,并用下划线(lower_case)分隔。但是,可以使用PascalCase或camelCase吗? 问题答案: 目前尚无SINGLE标准,但我已经看到您提到的3种样式(“ Pascal / Microsoft”,“ Java”()和“ C”(下划线,))以及至少另外一种样式,例如)。 这似乎主要取决于所涉及服务的背景开发人员。具