讓我們以表定義了文檔:雲扳手最佳實踐交錯問題
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個表歌手,相冊和歌曲。表專輯交錯歌手和表歌曲交錯歌手和相冊。
我的問題是,如果我們想這樣搜索關於某個歌手的所有信息,我們可以在表歌曲中搜索,如果歌手有專輯但沒有任何歌曲嗎?如果不是最好的做法是檢索歌手的所有數據(所有專輯和歌曲(如果有的話))。如果我們沒有在歌曲中找到任何東西(因爲歌手可以有一個專輯,但歌曲正在開發中),我想在表歌曲中搜索,然後在歌手中搜索(因爲即使專輯可以在開發中),但我不會不認爲這是最好的解決方案。
在我的情況下,查詢的用戶不知道歌手是否有歌曲或專輯,但想要回顧關於歌手的所有信息(如果可能,在一個分割中)。