这是一个相当具体的问题,我无法从现有的教程和资源中找到答案。我试图在我们的存储库中找到音频文件的关系,以便为音频文件的迁移执行分类。理想情况下,我想为每个现有记录找到Production Master文件,然后将其作为迁移的源文件。但是,已知有没有生成制作大师的录音的例子。在这些情况下,我们希望能够确定存在哪些类型的文件以及哪些生成(存档,可交付或两者都不存在)。为了进一步复杂化,在音频文件本身中找不到关系,而是将METS文件全部链接在一起。为了找到这个,我必须使用链接三个表的查询 - TEXT_METADATA(用于METS记录),OWNER_ACCESS_TO_OBJECTS(用于音频文件及其指定的角色和mimetypes),以及RELATIONSHIP_MAP(用于确定父文件和子文件的关系) 。 METS文件是父文件(B对象),音频文件是子文件(A对象)。
到目前为止,我构建了这个查询,以便根据" AUDIO_SIP"的描述符类型查找所有METS文件及其相关的音频文件。 (所有基于音频的METS文件)。最后一行是尝试根据没有相关生产主数据的METS记录来限制结果。
Select *
from
REPOSITORY.TEXT_METADATA rt,
REPOSITORY.RELATIONSHIP_MAP rm
where
rt.DESCRIPTOR_TYPE='AUDIO_SIP' and
rm.B_OBJECT_ID=rt.OBJECT_ID and
rm.A_OBJECT_ID in (select ro.OBJECT_ID
from REPOSITORY.OWNER_ACCESS_TO_OBJECTS ro
where ro.ROLE<>'PRODUCTION_MASTER)
当然,这里的问题是它返回一个没有Production Master的行,无论它与METS文件的关系如何,所以这没用。我绝对难以理解如何继续说&#34;返回所有B_OBJECT_IDS和关联的A_OBJECT_IDS,其中没有与B_OBJECT_ID链接的生产主数据。合理?如果我需要澄清,请告诉我。非常感谢任何帮助。