laravel查询与复杂数据库模式

ovfsdjhp  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(137)

任务(简称):为缺少文档的求职者创建查询

实体和重要领域

求职者(id),
职业(身份证,求职者身份证),
任命(id、求职者id、职业id、地点id、雇主id),
文件(id、求职者id、文件类别id),
文档类别(id、名称)
位置(id)
雇主(id)

关系

求职者有很多职业(求职者id)
求职者有很多约会(求职者id)
求职者有很多文件(求职者id)
职业有很多约会(职业id)
文档(文档\u类别\u id)属于文档类别
雇主任命(雇主id)
约会地点(地点\u id)
documentcategory拥有多个雇主(多对多)
documentcategory有多个位置(多对多)

说明(简体)

求职者的主要职业是最后一个
求职者有主要的任命,这是最后一个职业的最后任命
求职者需要持有特定文件类别的文件,这些文件可通过以下方式通过其主要约会找到:
documentcategory->employers应包含main appointment->employer
documentcategory->locations应包含主约会->位置
如果此语句为真,则需要documentcategory,否则缺少此documentcategory的文档

问题(扩展)

我应该向db提出两个问题:
获取至少有一个类别的所有求职者(他们没有至少一个必需类别的文档)
把所有有特定文件类别的求职者都找来(当给定documentcategory名称时)
这应该是查询,我不能后处理来过滤检索到的数据,因为整个任务都在一个上下文中,在这个上下文中,一个接一个地应用几个查询(连同我的)来过滤特定的求职者。

我试过的东西

对于特定名称:

$jobseekers = Jobseeker
    ::whereDoesntHave('documents', function($query) use($documentCategoryName) {
        $query->whereHas('documentCategory', function ($query) use ($documentCategoryName) {
            $query->whereName($documentCategoryName);
        });
    });

我想我应该选择所有求职者,他们都有特定的文档类别,并以某种方式将他们与上述查询连接起来进行筛选,但还不知道如何进行筛选,因为很难通过查询选择主要约会。
如果没有名字,我们找来求职者,他们至少缺少任何一个类别的文件,我也会被困在这里。我们不能使用wheredoesnthave,因为如果求职者至少有一个必需的documentcategory,他将不会被抓取,或者至少应该有一些我还不知道的解决方法。

ps公司

整个关系体系和范围都相当大。该体系结构非常复杂,不方便通过sql进行工作。我尽量略过一些奇怪的信息来回答我的问题,请询问是否有我描述的不充分或不清楚的地方。谢谢您!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题