2016-09-27 21 views
1


我正在開發一個android聊天應用程序,其中需要可排序的舊應用程序(以舊到最近的順序),並將保存在sqlite數據庫中。
Android聊天消息的可排序唯一標識

由於其功能,但不知道這是在做正確的方式的SQLite我現在已經採取了整數自動增量鍵。
我是這個領域的新手,沒有什麼想法。如果我的問題對你們來說看起來很天真而且微不足道,我會感到抱歉。
您的建議可能導致我,使我的產品簡單高效。

+0

我這最後一週確實做到了 - 儘管不是在SQLite的,我用火力地堡,但唯一的ID我所用形成無論是聊天的消息海報的顯示名稱加時間戳,在一個領域連接在一起,然後通過整理時間順序的比較器。 –

回答

1

我認爲你應該在納秒使用時間在毫秒或時間消息ID。如果您的應用程序是2路郵件系統,您可以按照用戶發送的時間順序輕鬆對郵件進行排序。如果您使用帶自動增量的ID,您最終會遇到時間衝突,因爲其他用戶的消息可能會在網絡上延遲。

System.nanoTime() 
+0

僅基於時間(在一個用戶處)的消息ID可能對發送給其他人的消息(在不同時區)產生問題,並且這些ID對其他人不會有用。 – user3123256

+0

如何使用UTC? –

0

我會使用服務器發出的ID。服務器可以將它們生成爲數據庫中的自動增量密鑰,或者通過增加其他計數器(比如每個對話)來生成它們。