【发布时间】:2010-12-28 07:51:58
【问题描述】:
我询问了this question 关于单个连接或多个(选择 n + 1)查询
如果您有多对多关系和很多桥接表,我想知道这是否相同
例如,这是我的表格:
表格:人员(id、first、last、age、phone 等)
表:角色(ID、名称)
表:PeopleRoles(id、personID、roleID)
表:技能(ID、姓名)
表:PeopleSkills(id、personID、skillID)
所以如果我加入,我会为每个人获得多行(假设一个人有很多角色或多种技能)。
假设有更多这样的具有许多关系的表,这样会更快:
选项 1:
- 从应用程序中选择 *
- 然后遍历每个应用程序并运行 Select * from Roles where applicationID = id inner join
选项 2:
或尝试创建一个返回大型结果集的大型查询,然后在将其转换为数据结构时需要对其进行规范化(因为我当然会在多行中获得相同的应用程序。
【问题讨论】:
标签: sql database-design query-optimization