Лучшие практики при обработке данных, идущих по процессу - PullRequest
0 голосов
/ 16 декабря 2009

В настоящее время я создаю приложение Windows для портативного устройства (WM 6.0, CF 2.0, sqlce 3.5), которое извлекает данные с сервера только при подключении к док-станции (все важные данные сохраняются / изменяются на портативном устройстве, пока оно не будет возвращается и закрепляется для синхронизации с сервером). Данные похожи на то, что UPS будет делать в том смысле, что они управляют приемом и доставкой товаров из местоположения в местоположение и записывают время, когда происходят эти «транзакции».

Изначально на контроллере имеется пара исходных таблиц (pickups и dropoffs) и несколько таблиц проверки. Во время данного захвата или возврата я пытаюсь найти наилучший способ перемещения данных по этому многоэтапному процессу.

Для пикапа я сейчас ...

  1. сначала выберите подмножество предметов из пикапа на основе общей характеристики, скажем, пакет имеет цвет "синий". Поэтому я выбираю все «синие» пакеты и вставляю их в таблицу temppickups.

  2. тогда пользователь должен определить все синие посылки, которые нужно забрать (элементы в temppickups), какие из них нужно забрать в том месте, где он находится, поэтому он выбирает «место сбора» "и все соответствующие элементы в temppickups вставляются в tempsitepickups.

  3. Затем пользователь выбирает из списка все элементы, которые он хочет забрать (из tempsitepickups), и запускает отчет для подтверждения полноты.

  4. Затем он подтверждает, что это те, которые он хочет, и предметы являются n перенесено в отдельную таблицу (pickedUpItems, с добавленными столбцами для записи времени доставки и прочего), чтобы упростить обновление сервера (вместо необходимости создавать оператор выбора из исходных таблиц для поиска обновленных записей)

Теперь я мог бы иметь в исходной таблице дополнительные столбцы, заполненные NULL, пока не будет вставлено время доставки, а затем использовать IS NOT NULL в качестве ограничителя при синхронизации только обновленных записей. Тем не менее, моя тенденция такова, что когда данные изменяются из родительской таблицы, они помещаются в новую таблицу (это происходит только 3 раза = 3 новые таблицы) до тех пор, пока не достигнут таблицы назначения (когда все новые таблицы между оригинал и пункт назначения освобождаются для следующего получения или возврата.

Является ли это лучшим способом для отслеживания такого рода данных, когда им манипулируют в приложении? Ваши мысли будут полезны. Спасибо!

* И дайте мне знать, если вы хотели бы получить разъяснения по некоторым аспектам этой гипотетики.

1 Ответ

1 голос
/ 17 декабря 2009

Что сразу приходит на ум, так это наличие только одной таблицы и столбца «состояния», например. текущее состояние элемента (выбранный элемент, выбранный сайт, выбранный элемент и т. д.). Дополнительные столбцы, на которые вы ссылаетесь, могут быть помещены в отдельную таблицу.

Но, с другой стороны, наличие отдельных таблиц упрощает и ускоряет запросы SQL, особенно если у вас много записей.

Просто некоторые мысли ...

...