基本上我想知道如果我可能需要使用一個RDBMS,而不是谷歌的數據存儲谷歌數據存儲左加入相當於
所以,我在GDS以下三種
request_ledger
key | type | content | sentTimestamp
xyx email <ssd> 10-10-10
request_recipient
key request_ledger to
1 key(request_ledger,xyz) [email protected]
2 key(request_ledger,xyz) [email protected]
result_ledger
key | request_ledger | to | deliveredTimestamp | bouncedTimestamp
1 key(request_ledger,xyz) [email protected] 10-10-11;
我使用單獨的種儘可能使我不會遇到更新/覆蓋問題 - 我總是隻保存新實體,而不是進行任何更新。
的request_ledger和request_recipient實體在同一時間被創建,但在result_ledger實體以後創建的網絡掛接的結果,所以基本上上面的模型將翻譯成以下報告:
- 電子郵件喬@喇嘛在11年10月10日
- 電子郵件被送到[email protected]仍懸而未決(即沒有交付或退回收到的網絡掛接事件還)
如果這是一個普通的RDBMS我可以使用左連接允許我可以通過3個表格進行報告,並且在result_ledger中沒有相關匹配的情況下允許空值。
例如,像..
select a.type, a.content, a.sentTimestamp, b.to, c.deliveredTimestamp, c.bouncedTimestamp from request_ledger a left join request_recipient b on a.key=b.request_ledger left join result_ledger on b.request_ledger = c.request_ledger and b.to = c.to
這會給我像
a.type | a.content |a.sentTimestamp |b.to . |c.deliveredTimestamp | c.bouncedTimestamp
email <content> 10:10:10 [email protected] 10-10-11
email <content> 10:10:10 [email protected]
,但在谷歌數據存儲,我不知道這是可能的嗎?