Обновление данных таблицы

Aleksis

Guest
Обновление данных таблицы

Есттьтаблица данных.Каждый месяц нужно обновлять обновление данные.(сотрудники новые,другие уволняются,меняются номера телефонов и должности). С 1с снимается новая dbf к концу месяца.Надо корректно заменить старую таблицу новой(сотрудники которые уволились -их удалять,новых вставить,а так же оставить тел. номера и поменять должности если такое есть)

как думаю:
1.переименовать старую таблицу в temp таблицу.
2.создать новую таблицу со старым названием и импортировать dbf
3.так как в новой таблице с новой dbf уже удалены уволившие сотрудники и внесены изменения по перемещению кадрового сотава,а также добавлены новые сотрудники ,остается только со старой таблицы(таблица temp) забрать тел.номера и внести их в новую таблицу.

Может есть другой алгоритм?
 

alexhemp

Новичок
Хранить все данные в одной таблице, продумав ее структуру.

К примеру - фиксировать изменения в должности, увольнения и т.п. Сами данные не удалять иначе историю изменеий не построишь.
 

Aleksis

Guest
Хранения данных осуществляется в другой базе,в моем случае(телефонный справочник) нужно просто свежие данные за месяц
 

vaucher

Новичок
С 1с снимается новая dbf к концу месяца.Надо корректно заменить старую таблицу новой(сотрудники которые уволились -их удалять,новых вставить,а так же оставить тел. номера и поменять должности если такое есть)
--------------------------------------------------------------------------------
Зачем переименовывать старую и создавать новую таблицу?
Сохраняй dbf в файл в нужном порядке и загружай в базу,
а при загрузке по условию равенства Фамилии Имя Отчества
Оставшихся UPDATE , а уволившихся, хочешь DELETE, а хочешь
Просто отключай(для ентого понадобится доп поле в таблице)
 

Aleksis

Guest
vaucher
Так я просто перепишу данные, строка с фамилией именем Отчеством из dbf не попадет именно в ту строку,где Иванову соответствует номер телефона,получится так,что это номер уже не у иванова,а у сидорова.Поэтомуи сохраняюю старую таблицу,чтоб потом номера вытащить строго по фамилиям
 

alexhemp

Новичок
Aleksis

Я же тебе говорю - продумай структуру. Она не обязательно должна совпадать с той, что в DBF файле.

Сперва реши что является первичным ключом - например ФИО. Или может номер телефона?

Реши что именно тебе нужно делать и возвращайся. Если же тебе просто нужно импортировать новые данные - тогда зачем тебе вообще старые?

Если же ты хочешь сделать какого-то рода репликацию данных - то нужно точно определиться что хочешь получить в итоге.
 

Aleksis

Guest
Таблица используется как телефонный справочник,то есть нужно не потярять номера .Затем в течение месяца забиваются добавачные номера к новым сотрудникам..То есть у меня уже есть исходная dbf с новыми сотрудниками(весь нужный состав,(там и старые и новые работники,с текущими должностями) ,надо просто занести одно поле--номера со старой таблицы.
 

alexhemp

Новичок
Ну так в чем проблема?

Зачем данные нужно переносить рядами?

Читай новую таблицу, и меняй в старой поле телефон у той записи у которой поле ФИО совпадает с полем ФИО новой таблицы

да и потом 1C есть уникальный ключ в таблицах?
Если есть, то можно традиционно его использовать.
 

Aleksis

Guest
да в 1с есть уникальный ключ.А как делать запрос,через insert или replace? заменить строки поле tel tabl1 на строки поля tel tabl2 где id1c tabl1 равен id1c tabl2
 

alexhemp

Новичок
Aleksis
Как хочешь так и делай. Тебе направление дали - запросы сам напишешь. Сделай бэкап и экспериментируй как для тебя будет лучше.
 
Сверху