Ayu*_*man 2 sql database entity-framework join
我关注了多篇文章,其中大部分使用实体框架查询来展示如何检索数据。但是,如果您考虑下面的表结构:
如果我想仅使用普通 SQL 查找 ID 为 2 的汽车的详细信息,我是否应该使用该 ID 在所有继承表中查找匹配项(本例中为“二手车”和“新车”)?
在我在“新车”表中找到“二手车”表之前,它是否不会导致对“二手车”表进行全面扫描?或者有什么方法可以知道我必须直接去“新车”表?
或者我对每类型表设计的假设是错误的?
如果您想查找年份,您可以这样做:
select c.*, coalesce(uc.year, nc.year) as year,
(case when uc.id is not null then 'Used' else 'New' end) as which
from car c left join
usedcar uc
on c.id = uc.id left join
newcar nc
on c.id = nc.id
where c.id = 2;
Run Code Online (Sandbox Code Playgroud)
您应该将其声明id为所有表中的主键(尽管我会将其命名为carId)。然后就不会进行任何扫描。只是索引查找。
换句话说,你的设计很好。您可能需要各种限制来确保汽车是新车或二手车,但不能同时是两者。
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |