Ответы пользователя по тегу SQL
  • Как быстро сравнить два списка?

    enq3
    @enq3
    Android engineer at #ITX5
    Если я все правильно понял, то клиент должен периодически запрашивать данные с сервера.
    Предлагаю такой вариант:
    Заведем еще два поля в таблице на сервере: Version и Deleted.
    При каждом изменении записи ее версия = максимальная версия в текущей таблице + 1.
    UID|HASH|Version|Deleted
    1|c4ca4238a0b923820dcc509a6f75849b|1|0
    2|c81e728d9d4c2f636f067f89cc14862c|2|0
    3|eccbc87e4b5ce2fe28308fd9f2a7baf3|4|0
    4|a87ff679a2f3e71d9181a67b7542122c|8|1
    5|e4da3b7fbbce2345d7772b0674a318d5|6|0

    Клиент запрашивает данные старше 3-ей версии.
    Вернется:
    {
        "version": 8,
        "changed": [
            {
                "UID": 3,
                "HASH": "eccbc87e4b5ce2fe28308fd9f2a7baf3"
            },
            {
                "UID": 5,
                "HASH": "e4da3b7fbbce2345d7772b0674a318d5"
            }
        ],
        "deleted": [
            {
                "UID": 4
            }
        ]
    }
    Не надо бегать по спискам и сравнивать хэши.
    Таким образом реализуется гибкий подход к клиентам с разной степенью актуальности данных. Это экономия трафика и экономия ресурсов устройства.
    Ответ написан