数据模型。 ¿Pluralize or not pluralize the names of the tables?
Data model. ¿Pluralize or not pluralize the names of the tables?
大家好。每当我开始为任何应用程序开发新数据模型时,我都会遇到同样的问题:
table的名字复数方便吗?
存储table的地方,例如users;您会调用“Users”还是“User”?
我没有复数化,因为使用这个数据模型,然后我为 ORM 生成了实体,似乎更正确实例化一个new 'User' 即一个新的 'Users'.
想知道考虑一下。
大家好!
我认为这里最好采用类似 Rails 的约定。 ORM 中的单数模型名称,数据库中的复数名称 table。原因是因为他们有不同的责任。 table 存储多个用户的记录,而 - 正如您所指出的 - 您通常实例化一个用户。
我想这完全取决于您实际使用数据库的目的:
I do not pluralize, because with this data model, I then generated entities for ORM and it seems more correct to instantiate a new 'User' that a new 'Users'.
但是除了sql、哪个框架、哪个工具之外,你没有提供太多关于你使用哪种语言的信息。
我一般说最好是符合框架或ORM的标准,比如.NET中Entity Framework数据库中table是generated with a singular notation and class names that map to these tables are singular as well, whereas in Ruby on Rails ActiveRecord they are generated pluralized但是mapping classes 是单数。
我认为没有更好的方法,但是,如果您的应用程序的数据比应用程序本身更重要(例如,我们最终可能会从该框架或语言迁移到完全不同的东西)或如果有其他人直接在数据库上工作(做报告的人、DBA、分析师等),那么我建议你将 table 设为复数形式 database people 更热衷于以这种方式使用它。
如果您认为在数据库级别复数化有意义,那么 users
table 可能会有多个用户,依此类推。如果您不打算存储多个具有相同结构的记录,为什么要以 table 方式存储数据?比多元化更有意义。
如果你用X语言创建一个数组类型的数据,比方说,对于用户来说,你不叫它user
你叫它users
可能,因为它可能包含多个,即使您最初只在上面存储一件东西。
这就是我为什么将 table 名称复数化是一个好方法的原因,此外,如果复数化打破了惯例,您几乎总是可以在 ORM 中设置映射,这样您就可以设置例如,User
class 映射到 users
table。
更新: here is another good discussion 在 StackExchange 的 DBA 上,他们提出了关于联合协会的观点
大家好。每当我开始为任何应用程序开发新数据模型时,我都会遇到同样的问题:
table的名字复数方便吗?
存储table的地方,例如users;您会调用“Users”还是“User”?
我没有复数化,因为使用这个数据模型,然后我为 ORM 生成了实体,似乎更正确实例化一个new 'User' 即一个新的 'Users'.
想知道考虑一下。
大家好!
我认为这里最好采用类似 Rails 的约定。 ORM 中的单数模型名称,数据库中的复数名称 table。原因是因为他们有不同的责任。 table 存储多个用户的记录,而 - 正如您所指出的 - 您通常实例化一个用户。
我想这完全取决于您实际使用数据库的目的:
I do not pluralize, because with this data model, I then generated entities for ORM and it seems more correct to instantiate a new 'User' that a new 'Users'.
但是除了sql、哪个框架、哪个工具之外,你没有提供太多关于你使用哪种语言的信息。
我一般说最好是符合框架或ORM的标准,比如.NET中Entity Framework数据库中table是generated with a singular notation and class names that map to these tables are singular as well, whereas in Ruby on Rails ActiveRecord they are generated pluralized但是mapping classes 是单数。
我认为没有更好的方法,但是,如果您的应用程序的数据比应用程序本身更重要(例如,我们最终可能会从该框架或语言迁移到完全不同的东西)或如果有其他人直接在数据库上工作(做报告的人、DBA、分析师等),那么我建议你将 table 设为复数形式 database people 更热衷于以这种方式使用它。
如果您认为在数据库级别复数化有意义,那么 users
table 可能会有多个用户,依此类推。如果您不打算存储多个具有相同结构的记录,为什么要以 table 方式存储数据?比多元化更有意义。
如果你用X语言创建一个数组类型的数据,比方说,对于用户来说,你不叫它user
你叫它users
可能,因为它可能包含多个,即使您最初只在上面存储一件东西。
这就是我为什么将 table 名称复数化是一个好方法的原因,此外,如果复数化打破了惯例,您几乎总是可以在 ORM 中设置映射,这样您就可以设置例如,User
class 映射到 users
table。
更新: here is another good discussion 在 StackExchange 的 DBA 上,他们提出了关于联合协会的观点