Уведомления

Группа в Telegram: @pythonsu

#1 Июль 12, 2014 15:45:28

Suliman
Зарегистрирован: 2013-06-18
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Объясните как синхронизировать две таблицы

Используй Python, но тут в языке не суть.
Есть две идентичные по структуре таблицы:

+-----+-------+------------+
|ID |Name | Company |
+--------------------------+
|1 | Dmitry|RKS |
|2 | Petr |HTD |
|3 | Misha |CHPU |
+-----+-------+------------+

В каждую из них могут добавить руками новую запись. Как будет выглядеть алгоритм проверки и переноса новой записи из одной таблицы в другую. Мне говорили, что нужно добавить еще один ID и как-то его использовать, но я не совсем понял

Отредактировано Suliman (Июль 12, 2014 15:46:00)

Офлайн

#2 Июль 13, 2014 10:33:38

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Объясните как синхронизировать две таблицы

Алгоритм написать нельзя по очень простой причине. Вы не описали что надо делать и при каких ограничениях.

Suliman
алгоритм проверки
Проверки чего?
Suliman
и переноса новой записи из одной таблицы в другую
Куда ее надо перенести? В конец? В начало? Надо сохранять относительный порядок записей в первом и втором файле? Вообще не важно куда ее поместить?
Чего делать с номерами в первой колонке?
Что такое новая запись? Новая по отношению к чему?
Должны быть записи уникальными? Если да то в каком смысле?

Если файлы правятся руками то это вообще плохая идея их перезаписывать.

Поскольку ограничений нет то предлагаю простой алгоритм cat a b >c

Если надо что-то продвинутое то (поскольку данных скорее всего немного) импортировать данные в питон в нормальном виде. Примерно так:

import re
def load_data(nm):
    return set(re.findall(r"^(| *\\d+[^\\n]+)",open(nm,"r").read(),re.M))

Дальше воспользоваться set union.
и сохранить данные.

:) Еще лучше сразу уйти от хранения файлов в таком дурацком формате. Надо ЗАСТАВИТЬ пользователей работать с обычными таблицами при редактировании данных. Тогда можно будет использовать море готовых средств для работы с данными.



Отредактировано doza_and (Июль 13, 2014 10:35:18)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version