0
我正在開發一個使用谷歌數據存儲的社交登錄系統。我需要使用其社會身份認證用戶,然後返回所有身份信息。客戶可以登錄多個社交帳戶,也可以在我的網站上創建一個身份,因此它基本上具有多個社交身份和我的網站身份。目前我使用運行3個查詢(按順序),我覺得這是一個有點太多了,所以我不知道是否有更好的方法來做到這一點:如何在數據存儲上高效地獲得「關係」元素?
// get the username registered with my site(if is registered)
- userID = SELECT userID From social WHERE socialID == $socialID
// get the data of the user
- userData = SELECT * from MyData WHERE userID == userID
// get the data of any other identity it uses/has linked to the user id
- otherSocial = select * FROM social WHERE userID=userID and socialID != $socialID
這似乎是一個祖先查詢的工作。如果你的「MyData」是所有「社交」的祖先,那麼你可以在一個查詢中獲得所有內容,不是嗎? – Patrice 2015-04-04 19:19:46
我如何通過社交身份獲得MyData?(即Sibling的祖先) – 2015-04-04 19:24:59
https://cloud.google.com/appengine/docs/python/datastore/modelclass#Model_parent。所以從你的社交中,你可以做MyData = social.parent(),然後從那裏開始工作。或者使用安德烈的建議,這也可以工作 – Patrice 2015-04-04 19:33:50