key-valueであるTableの設定についてRDB的に考えてみた。

PartitionKeyはすべて共通、単一にする。 PartitionKey = "(system name)"
RowKeyには本来のTableの名前とキーを付ける。RowKey = "(table name)"+'\t'+ key (\t:tab区切り)
PartionKeyが単一なら、RDBのようなリンクをはっても遅延するような問題は起きないはず。



PartionKey RowKey Timestamp CD NM Contents Kaigai Contents2..

                                                                                                                                                                                                                                  • -

Test KAIGAI\t0 ----- 0 国内
Test KAIGAI\t1 ----- 1 海外
Test DATA\t000001 ----- 000001 ******** 1
Test DATA\t000002 ----- 000002 ******** 0

var k = from d in (Table on WinAzure)
from k in (Table on WinAzure)
where d.PartionKey==k.PartionKey && "KAIGAI\t"+d.Kaigai==k.RowKey
select new { d.CD, d.Contents, kaigai=k.NM }


kは
000001, *******, 海外
000002, *******, 国内
を返す。

まあ、こういう考え方もあるという事で。