大家好。每当我开始为任何应用程序开发新的数据模型时,我都会遇到相同的问题:

将表名复数是否方便?

表的存储位置,例如,用户;您会称呼“用户”还是“用户”?

我不会进行多元化处理,因为使用此数据模型之后,我为ORM生成了实体,实例化一个新的“用户”似乎比新的“用户”更为正确。

我想知道。

祝福大家!

最佳答案

我想这一切都取决于您实际将数据库用于以下用途:


  我不会进行多元化处理,因为使用此数据模型之后,我为ORM生成了实体,并且实例化一个新的“用户”似乎比新的“用户”更为正确。


但是,除了使用sql,使用哪种框架,使用哪种工具之外,您没有提供太多有关使用哪种语言的信息。

我通常会说最好的做法是符合框架或ORM的标准,例如,在.NET Entity Framework中,表为generated with a singular notation,映射到这些表的类名也为单数,而在Ruby on Rails ActiveRecord中,在数据库中为generated pluralized,但映射类为单数。

我认为没有更好的方法,但是,如果您的应用程序的数据比应用程序本身更重要(例如,我们最终可能会从该框架或语言迁移到完全不同的内容),或者如果其他人直接在数据库上工作(做报告的人,DBA的人,分析师等),那么我建议您使表成为复数形式,因为数据库人更愿意使用这种方式。

如果您认为在数据库级别上复数是有意义的,那么users表可能将具有多个用户,依此类推。如果您不打算用同一结构存储多个记录,为什么还要以表的形式存储数据?比起多元,这更有意义。

如果您使用X语言创建Array类型的数据,那么对于用户而言,您可能不会将其称为user而是将其称为users,因为它可能包含多个,即使您仅存储一件东西最初。

因此,这就是为什么要对表名进行复数是一种好方法的背后原因,此外,如果复数违反了约定,您几乎总是可以在ORM中设置映射,以便可以将User类设置为映射到表。

更新:StackExchange的DBA上的here is another good discussion,他们在此点上关于联合关联

关于mysql - 数据模型。 ??是否将表名复数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36726241/

10-10 00:32
查看更多