我需要对这种方法提出一些建议 - 请参阅下面的示例。
我的表结构如下
data_jobtype
id, identifier (varchar), description (varchar), userid (int)
data_statustype
id, identifier (varchar), description (varchar), userid (int)
data_usertype
id, identifier (varchar), description (varchar), userid (int)
data_roletype
id, identifier (varchar), description (varchar), userid (int)
还有大约 10 个类似的表。然后我有了另一个想法并创建了一个新表
data_types
id, identifier (varchar), description (varchar), userid (int), typetype (varchar)
该表从上述表中获取所有数据,并且typetype
字段告诉它是哪种类型的数据。例如。typetype
=“工作类型”或typetype
=“角色类型”
第二种方法工作得很好,但是当我编写查询以两次引用同一个表以创建两种不同类型的连接时,types
我意识到我需要了解在查询中多次查询单个表是否比多个表更好。示例查询:
select u.*, dt.description usertype_desc, dt2.description roletype_desc
from users u
left join data_types dt on dt.identifier = u.user_identifier and dt.typetype = 'usertype'
left join data_types dt2 on dt2.identifier = u.role_identifier and dt2.typetype = 'roletype'
Where u.status = 'live'
我担心的不仅仅是这个问题。该项目仍处于早期阶段,但最终会发展壮大,因此我现在有时间放置基本结构,如果我做得对,我将不胜感激。您会推荐哪种方法而不是其他方法,为什么?谢谢