我有很多关系:客户端和代理表(只是一个例子).显然,每个客户端可以有多个代理,每个代理可以有多个客户端.什么被认为是交叉表的正确命名约定....是ClientBroker ...?
我更喜欢"Clients_Brokers"(将这两个名称复数化以表示多对多).
我更喜欢区分交叉表和实际的事务表.所以,我用Map结束它们.所以它将是Client_Broker_Map或ClientBrokerMap.
我通常使用两个连接表的名称.
所以,在你的情况下,ClientBroker.
我经常看到格式"Client_Broker"
一些程序员不喜欢多次表名,原因如下:
它打破了"是一个"规则,这意味着如果你有一个名为'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".最后,
我正处于一个项目的中间,我正在使用DESCRIBE获取表和字段名称.我使用Client_x_Broker所以我可以很容易地找到一个表并通过使用_x_
作为标准来获取字段,这个字符串在代码或数据集中不会自然地出现,而且无论如何都不在我的中,并且很容易实现找到单个表的名称.此外,只要我保持一致,我就可以从表名中获得大量信息,包括主键名.对不起,迟到了,b,继续.:)