以下是我在命名表时尝试遵循的三种最佳做法:
记住这一切,您如何建议命名保存用户身份的表?
答案 0 :(得分:31)
答案 1 :(得分:8)
我通常使用会员或帐户等内容,具体取决于应用程序。也就是说,如果您使用的是现代设计工具和原则(例如,数据库抽象层或ORM具有将业务逻辑与数据访问分开的面向对象的代码库),则表命名变得相当无关紧要。您的开发人员应该只通过定义良好的接口访问数据库,而不是手写SQL,要求他们知道表名。例如,您可以命名表帐户,但通过名为User的对象映射对它的访问权限。您的开发人员不应该考虑表,而是考虑访问对象,这些对象的命名不会有相同的限制:
$user = new User($username);
$user->authenticate($password);
答案 2 :(得分:3)
使用同义词。使用什么词取决于你在表格中存储的确切内容,但是account
让我感到很好。如果你想使用变体user
,我会打破你提到的第一个指南,而不是第二个或第三个指南:users
很常见,不一致性基本上是助记符。
答案 3 :(得分:1)
请勿将保留字或带引号或转义字作为数据库表名称。
如果您确实要执行此操作,则需要转义名称:
user"
@Table(name = "\"user\"")
我强烈不建议对数据库表名(例如USERS
)使用复数形式。这是违反SQL命名约定的常规。数据库表名称必须为单数名词。
我建议使用 ACTOR
作为数据库表名称来存储用户详细信息。此名称清晰,易于理解且足够通用。它也可以用于公司和个人(不像例如PERSON
,它仅适用于个人而不适用于公司)。
答案 4 :(得分:0)
即使我不使用框架,我也使用CakePHP规则:
表名按惯例使用小写和复数形式,多字表名以下划线分隔。例如,模型名称 Ingredient
需要表名 ingredients
。模型名称 EventRegistration
的表格名称为 event_registrations
。