簡體   English   中英

私人消息的GAE數據存儲實體

[英]GAE Datastore entity for private messages

我想創建一個Android應用,用戶只能通過向其朋友發送私人消息進行通信。 我將Java用於GAE應用程序。

更准確地說,如果用戶A有三個朋友B,C和D,我希望他能夠選擇其中兩個(讓他們說B和C)並啟動D看不到的線程。 在那個線程中,AB和C可以像在論壇中那樣以異步方式進行交談。

問題是:如何使我的實體以最有效的方式滿足那些條件?

現在,我認為我需要兩個實體:線程和消息。 但是例如,我不知道當A將在數據存儲區中發送線程請求時,我應該在哪里添加對B和C的引用。 如果我將其添加到“收件人列表”字段中,我認為對於用戶來說,請求其邀請的所有線程都太長了。

我知道我想做的很經典,所以有人可以幫我嗎?

class User(ndb.Model):
  pass

class Thread(ndb.Model):
  participants = ndb.KeyProperty(kind=User, repeated=True)

class Message(ndb.Model):
  thread = ndb.KeyProperty(kind=Thread)
  user = ndb.KeyProperty(kind=User)

# user's thread
Thread.query(Thread.participants == user.key).fetch()

# all thread messages
Message.query(Message.thread == thread.key).fetch()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM