【发布时间】:2018-02-25 00:14:52
【问题描述】:
让我们以文档中定义的表格为例:
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 歌手表和歌曲 INTERLEAVE 歌手表> 和专辑。
我的问题是,如果我们想要搜索有关特定歌手的所有信息,如果歌手有专辑但还没有任何歌曲,我们可以在表 Songs 中搜索吗?如果不是,那么检索歌手的所有数据(所有专辑和歌曲(如果有的话))的最佳做法是什么。如果我们在歌曲中找不到任何内容,我想在表歌曲中搜索(因为歌手可以有一张专辑,但歌曲正在开发中)在表专辑中搜索,然后在歌手中搜索(因为即使专辑也可以在开发中)但我没有'认为这不是最好的解决方案。
在我的情况下,进行查询的用户不知道歌手是否有任何歌曲或专辑,但想检索有关歌手的所有信息(如果可能的话,一次拆分)。
【问题讨论】:
标签: google-cloud-platform google-cloud-spanner