让我们以表定义了文档:云扳手最佳实践交错问题
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个表歌手,相册和歌曲。表专辑交错歌手和表歌曲交错歌手和相册。
我的问题是,如果我们想这样搜索关于某个歌手的所有信息,我们可以在表歌曲中搜索,如果歌手有专辑但没有任何歌曲吗?如果不是最好的做法是检索歌手的所有数据(所有专辑和歌曲(如果有的话))。如果我们没有在歌曲中找到任何东西(因为歌手可以有一个专辑,但歌曲正在开发中),我想在表歌曲中搜索,然后在歌手中搜索(因为即使专辑可以在开发中),但我不会不认为这是最好的解决方案。
在我的情况下,查询的用户不知道歌手是否有歌曲或专辑,但想要回顾关于歌手的所有信息(如果可能,在一个分割中)。