2011-01-20 54 views
0

我在將來的社交應用程序中的權限問題很少。使用IN運算符的BigTable查詢獲取所有用戶組密鑰

平臺將nonrel db(谷歌的BigTable)。

在我的應用程序中,每個用戶都有組(例如:朋友,合作者,家人......)。小組中有一些朋友(如Facebook)。並且只能爲這個組發佈一些內容(新聞,短文,...)。 如果我在我的組中有用戶,它是我的朋友。像Facebook一樣,但更多的團體。

我的想法是,每個用戶都可以在一頁中看到(自己「喂」)所有朋友的所有最後內容(如Facebook的熱門新聞)。 但我在創建簡單查詢時遇到問題。

例如:

SELECT * FROM News WHERE group_key IN [list_of_groups_where_i_am] 

這工作不錯,但也有子查詢和列表的上限爲30項。其他方式是強大的緩存內容。

有沒有人有一些想法?或任何研究材料,例如...

回答

1

有了這樣的要求,您可以優化讀取或寫入,但通常不是兩者。您有寫入優化版本 - 只需使用正確的組密鑰編寫記錄,但需要複雜的查詢才能獲取所有組的內容。

讀取優化版本將寫入內容(或只是它的id)到每個用戶的提要,這使得讀取查詢非常簡單。