【问题标题】:Sortable unique ids for Android chat messagesAndroid 聊天消息的可排序唯一 ID
【发布时间】:2017-02-04 19:39:23
【问题描述】:


我正在开发一个 android 聊天应用程序,我需要唯一的聊天消息 ID,这些 ID 应该是可排序的(按旧到最近的顺序)并将保存在 sqlite db 中。

到目前为止,我已经采用了 Sqlite 的整数自动增量键,它正在运行,但不确定这是否是正确的做法。
我是这个领域的新手,几乎没有什么想法。如果我的问题对你们来说似乎很幼稚和微不足道,我很抱歉。
您的建议可能会让我的产品更高效、更简单。

【问题讨论】:

  • 我上周确实这样做了——虽然不是在 SQLite 上,但我使用了 Firebase,但我使用的唯一 ID 由聊天消息海报的显示名称和时间戳组成,并串联在一起字段,然后通过比较器按时间顺序排序。

标签: android sqlite sorting chat unique-key


【解决方案1】:

我认为您应该使用以毫秒为单位的时间或以纳秒为单位的时间作为消息 ID。如果您的应用程序是 2 路消息系统,您可以轻松地按时间顺序对用户发送的消息进行排序。如果您使用自动递增的 id,您最终会遇到时间冲突,因为其他用户的消息可能会在网络上延迟。

System.nanoTime()

【讨论】:

  • 消息 id 仅基于时间(在一个用户处)可能会对发送给其他人(在不同时区)的消息造成问题,并且这些 id 对其他人没有用。
  • 使用UTC怎么样?
【解决方案2】:

我会使用服务器发布的 ID。服务器可以将它们生成为数据库中的自动递增键,或者通过递增一些其他计数器,例如每次对话。

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多