2013-05-11 66 views
0

關於如何爲消息傳遞系統設計可伸縮數據庫架構的任何建議。這個消息系統不會有任何附件。我想使用APNS通知來通知用戶新的傳入消息。有點像Facebook消息,但沒有附件。iOS CoreData架構設計指南

我應該如何設置實體/表格?關係? APNS集成?如果過去有人這樣做過,那麼很高興看到圖形佈局?

我打算使用核心數據與StackMob(遠程數據庫)。

謝謝!

+1

你的數據庫在應用程序中如此重要嗎?提供所有帳戶和消息的持久性的服務器更重要。該應用程序應該只存儲非常少的數據,並且全部從服務器上下載......您的數據庫可能會反映服務器上的對象。 – Wain 2013-05-11 06:57:28

+0

正確。但我仍然需要配置數據庫。製作表格等,你有什麼建議? – user1107173 2013-05-11 12:55:10

回答

1

我猜你打算爲應用程序知道用戶1,他們的接觸,並從這些聯繫人收到發送到+消息...我也猜測,該用戶登錄了,你會刪除所有數據來自應用程序的舊用戶並從新服務器爲新用戶下載新數據。

我可能不會擔心有當前用戶的對象,它並沒有提供太多的效用。我可能會使用用戶默認值來存儲用戶身份,並在已知位置的磁盤上有一個頭像圖像。

對於模型我可能有2個實體:

  1. Contact
  2. Message

Contact有姓名,ID,頭像文件名,最近消息的日期(也許是第一封郵件)以及與Message(一對多)的關係 Message具有郵件文本,發送日期以及將郵件標識爲發送/接收的標記

有了這個超級簡單的數據模型,你可以輕鬆地下載並無需下載所有的郵件存儲聯繫人信息。您可以列出用戶的聯繫人,並且知道您最近收到了哪些消息(或發送給了哪些消息)。當您需要時,您可以下載並填寫指定用戶的最新消息。

當你的服務器保存所有數據,如果你發現你需要更改數據模型的升級路徑很簡單:刪除舊DB檔案,建立一個新的,重新下載數據。您不應該在設備上擁有比您需要的數據更多的數據,並且應該定期清除舊的消息(並且不要在屏幕上顯示它們)。

服務器和RESTful接口仍然定義以及更重要的一點。我會使用RestKit與服務器進行交互。

+0

感謝您的詳細回覆。 – user1107173 2013-05-12 03:43:31

+0

你能詳細解釋一下頭像嗎? – user1107173 2013-05-12 03:47:55

+0

這是什麼?谷歌和檢查第一擊。 – Wain 2013-05-12 06:05:14