当前位置:  开发笔记 > 编程语言 > 正文

适用于多对多交叉表的表命名约定

如何解决《适用于多对多交叉表的表命名约定》经验,为你挑选了6个好方法。

我有很多关系:客户端和代理表(只是一个例子).显然,每个客户端可以有多个代理,每个代理可以有多个客户端.什么被认为是交叉表的正确命名约定....是ClientBroker ...?



1> FrustratedWi..:

我更喜欢"Clients_Brokers"(将这两个名称复数化以表示多对多).


这是旧的单数与复数表命名冲突(在此扩展为连接表).您是否以单数形式命名表格 - 例如"客户",因为每条记录代表一个客户?或复数,因为表本身包含许多"客户"?这是一个意见问题,我认为没有理由拒绝这一点.
我投了这票,因为其他人投了票.我认为这个惯例很好,而且经常是必要的.MVC框架提供的一些ORM库具有表的命名约定,以自动处理关系.我知道至少有3个PHP框架使用复数名称和下划线分隔多对多数据透视表名称,如下所示.

2> 小智..:

我更喜欢区分交叉表和实际的事务表.所以,我用Map结束它们.所以它将是Client_Broker_Map或ClientBrokerMap.



3> Michael Todd..:

我通常使用两个连接表的名称.

所以,在你的情况下,ClientBroker.


按字母顺序排列表格也很好!一些框架(laravel)使用此表示法。即`BrokerClient`代替

4> froadie..:

我经常看到格式"Client_Broker"



5> wpjmurray..:

一些程序员不喜欢多次表名,原因如下:

它打破了"是一个"规则,这意味着如果你有一个名为'User'的表,那么表中的每个记录"都是一个"User对象.这遵循面向对象的规则.

Model类通常以其数据来源的表命名.因此,如果您有User模型,则模型所代表的记录位于User表中

如果您控制项目的整个数据库和业务层,这将非常有意义.但是,许多框架现在都有ORM库,可以帮助处理表和关系.这些ORM库通常都有一个命名语法,应该遵循这个命令语法让ORM库完成大部分繁重工作.

例如,我使用PHP的Kohana MVC框架,它提供了一个ORM库.ORM建议使用所有小写名称复数表名,并使用下划线表示多对多表名.因此,对于您的示例,您将拥有以下表:clients,brokers和brokers_clients(ORM建议按字母顺序排列多对多表的表名).在为这些表创建模型(扩展ORM模型)时,使用表名的单数值,因此客户端的模型将是Client.ORM处理复数转换.Kohana的ORM也使用了一个变形库,因此可以正确处理不寻常的复数值.例如,名为"categories"的表可以使用模型名称"Category".最后,



6> 小智..:

我正处于一个项目的中间,我正在使用DESCRIBE获取表和字段名称.我使用Client_x_Broker所以我可以很容易地找到一个表并通过使用_x_作为标准来获取字段,这个字符串在代码或数据集中不会自然地出现,而且无论如何都不在我的中,并且很容易实现找到单个表的名称.此外,只要我保持一致,我就可以从表名中获得大量信息,包括主键名.对不起,迟到了,b,继续.:)

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有