Hbaseが内部でどのように機能するかを理解するのを手伝ってください。
列の値は別のテーブルのキーを参照できますか?
例えば:
subjectId を外部キーとして持つ Student テーブルがあり、Subject テーブルが主キーとして id を持っているとします。Student と Subject を一緒にマッピングするにはどうすればよいでしょうか?
Hbaseが内部でどのように機能するかを理解するのを手伝ってください。
列の値は別のテーブルのキーを参照できますか?
例えば:
subjectId を外部キーとして持つ Student テーブルがあり、Subject テーブルが主キーとして id を持っているとします。Student と Subject を一緒にマッピングするにはどうすればよいでしょうか?
HBaseが内部でどのように機能するかを理解するのを手伝ってください。
これは、ここで完全に説明することはできません。詳細については、このリンクを参照してください。
列の値は別のテーブルのキーを参照できますか?
列は、同じテーブルまたは別のテーブルの別の行のキーを確実に格納できます。最初のテーブルからこの値を読み取ってから、行をフェッチするために 2 番目のテーブルに移動する必要があります (両方の行が異なるテーブルにある場合)。
例: 外部キーとして subjectId を持つ Student テーブルがあり、Subject テーブルが id を主キーとして持っているとします。Student と Subject を一緒にマッピングするにはどうすればよいでしょうか?
HBase を誤解しているようです。従来の RDBMS のようには機能しません。HBase を使用する場合、主キー、複合キー、または外部キーの概念はありません。ただし、行キーを主キーとして扱うことができます。行は、これらの行キーに基づいて辞書順にソートされます。
あなたの質問に戻ります。テーブルに 2 つの列ファミリー (1 つは学生用、もう 1 つは科目用) を持つことができます。このようにして、あるテーブルから別のテーブルに移動することなく、あらゆるものにアクセスできます。
HTH
あなたのコメントに応えて:
すべての列を一緒に含む列ファミリーが 1 つだけのテーブルを作成することもできます。このようなもの :
または、これら 2 種類のデータを分離したい場合は、次のように、学生関連データ用に 1 つ、科目関連データ用に 1 つの、2 つの列ファミリーを持つ 1 つのテーブルを作成できます。
学生ごとに一意になるため、学生 IDを行キーとして使用します。フェッチしたい場合:
1. 科目データ サイエンスに申し込んだすべての学生を取得します 。これを実現するには、columnvalue フィルターを使用します。
1. 特定の学生のすべての科目を一覧表示する:これは簡単です。その特定の行に乗るだけです。
学生が申請すると、科目ごとに列を追加し続けます。