命名“用户”表的最佳做法是什么?

时间:2011-03-13 16:11:33

标签: database database-design naming-conventions

以下是我在命名表时尝试遵循的三种最佳做法:

  • 永远不要用复数形式命名表(例如“用户”)
  • 永远不要使用保留关键字(例如“user”)
  • 命名表
  • 永远不要在表名前加上“tbl”或其他对象类型前缀

记住这一切,您如何建议命名保存用户身份的表?

5 个答案:

答案 0 :(得分:31)

我同意,不要使用任何保留字,或引用或括号或转义形式的保留字。

将用户表命名为

您可能会对this answer和谷歌感兴趣ISO standard 11179来命名指南

答案 1 :(得分:8)

我通常使用会员或帐户等内容,具体取决于应用程序。也就是说,如果您使用的是现代设计工具和原则(例如,数据库抽象层或ORM具有将业务逻辑与数据访问分开的面向对象的代码库),则表命名变得相当无关紧要。您的开发人员应该只通过定义良好的接口访问数据库,而不是手写SQL,要求他们知道表名。例如,您可以命名表帐户,但通过名为User的对象映射对它的访问权限。您的开发人员不应该考虑表,而是考虑访问对象,这些对象的命名不会有相同的限制:

$user = new User($username);
$user->authenticate($password);

答案 2 :(得分:3)

使用同义词。使用什么词取决于你在表格中存储的确切内容,但是account让我感到很好。如果你想使用变体user,我会打破你提到的第一个指南,而不是第二个或第三个指南:users很常见,不一致性基本上是助记符。

答案 3 :(得分:1)

请勿将保留字或带引号或转义字作为数据库表名称。

如果您确实要执行此操作,则需要转义名称:

  • 引号:“ user"
  • Java + JPA转义:@Table(name = "\"user\"")

我强烈不建议对数据库表名(例如USERS)使用复数形式。这是违反SQL命名约定的常规。数据库表名称必须为单数名词。

我建议使用 ACTOR 作为数据库表名称来存储用户详细信息。此名称清晰,易于理解且足够通用。它也可以用于公司和个人(不像例如PERSON,它仅适用于个人而不适用于公司)。

答案 4 :(得分:0)

即使我不使用框架,我也使用CakePHP规则:

表名按惯例使用小写和复数形式,多字表名以下划线分隔。例如,模型名称 Ingredient 需要表名 ingredients 。模型名称 EventRegistration 的表格名称为 event_registrations