Возьмем таблицы, определенные в документах:
CREATE TABLE Singers (
SingerId INT64 NOT NULL,
FirstName STRING(1024),
LastName STRING(1024),
SingerInfo BYTES(MAX),
) PRIMARY KEY (SingerId);
CREATE TABLE Albums (
SingerId INT64 NOT NULL,
AlbumId INT64 NOT NULL,
AlbumTitle STRING(MAX),
) PRIMARY KEY (SingerId, AlbumId),
INTERLEAVE IN PARENT Singers ON DELETE CASCADE;
CREATE TABLE Songs (
SingerId INT64 NOT NULL,
AlbumId INT64 NOT NULL,
TrackId INT64 NOT NULL,
SongName STRING(MAX),
) PRIMARY KEY (SingerId, AlbumId, TrackId),
INTERLEAVE IN PARENT Albums ON DELETE CASCADE;
Итак, у нас есть 3 таблицы: Singers, Albums и Songs сильный>. Таблица Альбом INTERLEAVE Singers и таблица Songs INTERLEAVE Singers em > и Альбомы.
Мой вопрос в том, хотим ли мы искать всю информацию о конкретном певце, можем ли мы искать в таблице «Песни», если у певца есть альбом, но еще нет песни? Если нет, то лучше всего получить все данные исполнителя (все альбомы и песни (если они есть)). Я думал искать в таблице Songs, если мы ничего не находим в Songs (потому что у певца может быть альбом, но песни находятся в разработке) искать в таблице Album, а затем в Singer (потому что даже альбом может быть в разработке), но я не не думаю, что это лучшее решение.
В моем случае пользователь, который делает запрос, не знает, есть ли у певца песни или альбомы, но хочет получить всю информацию о певце (если возможно, за один раз).