powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сохранение ссылочной целостности. при слиянии баз
14 сообщений из 14, страница 1 из 1
Сохранение ссылочной целостности. при слиянии баз
    #32886378
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется база с двумя таблицами:
1-я - таблица сотрудников:

id_sotrudnika | FIO
1 | Иванов
2 | Петров


2-я - таблица заслуг сотрудников:

Id_zaslugi | Zasluga | id_sotrudnika
1 | Medal | 1
2 | Orden | 2
3 | Gramota | 1


Т.е. у Иванова есть медаль и грамота, а у Петрова - орден.

Тепрь нужно слить эту базу с точно такой же по структуре, в которой есть такие же таблицы с такой же структурой, но другими данными:

id_sotrudnika | FIO
1 | Гаврилов
2 | Андреев


Id_zaslugi | Zasluga | id_sotrudnika
1 | Premiya | 1
2 | blagodarnost | 2


Т.е. у Гаврилова есть премия, а у Андреева - благодарность.
При слиянии в первую базу записи 1-Гаврилов и 2-Андреев соответственно получают порядковые номера 3 и 4 по первичному автоинкрементному ключу в первой таблице первой базы. А как сделать так, чтобы при присоединении второй таблицы с описанием заслуг значение поля id_sotrudnika менялось в зависимости от изменения прядкового номера вставленной записи? Т.е., запиь
1 | Premiya | 1
из второй таблицы второй базы должна выглядеть во второй таблице первой базы как
1 | Premiya | 3
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32886430
vizio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавь столбец со старым значением ключа и после загрузки обнови ссылку в таблице заслуг на новое значение ключа
потом дополнительное поле удали
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32886474
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vizioдобавь столбец со старым значением ключа и после загрузки обнови ссылку в таблице заслуг на новое значение ключа
потом дополнительное поле удали
т.е. в таблицу сотрудников добавить дополнительное поле в которое будет вносится старое значение id_sotrudnika, а затем к таблице заслуг сформировать запрос на изменение поля id_sotrudnika по вновь сформированому id?
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32886523
vizio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да
обновление ссылки лучше делать в том же запросе, что и добавление заслуг в 1ю базу из 2й
или если сначала копируешь заслуги, а потом обновляешь, то как-то пометь заслуги из 2й базы, а то и старые обновятся
понятно написано?
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32886630
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vizioда
обновление ссылки лучше делать в том же запросе, что и добавление заслуг в 1ю базу из 2й
или если сначала копируешь заслуги, а потом обновляешь, то как-то пометь заслуги из 2й базы, а то и старые обновятся
понятно написано?

Да, благодарю. Сначала буду сливать таблицы с фамилиями, затем обновлю поля во второй базе у таблиц с заслугами, а уж потом солью таблицы с заслугами.
Единственная неприятность во всем этом деле состоит в том, что таблица с фамилиями в реальности содержит 106 полей , таблиц вроде тех, что с заслугами в реале аж 32 Запросик получится малость нескромный
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32886746
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
32 таблицы содержат похожие или совершенно разные данные ?
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32886992
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель32 таблицы содержат похожие или совершенно разные данные ?
Таблицы абсолютно одинаковой структуры, но с разными данными внутри.
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32887235
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин! Я так и боялся. Даешь каждому ForeignKey по персональной таблице! Долой связь один-ко-многим! Ура!!!

Осталось допытаться, что за сотня с гаком полей в таблице сотрудников. Думаю, не менее изящное решение. Типа "зарплата за январь", "зарплата за февраль", ...
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32887361
vizio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yura_s Программист-Любитель32 таблицы содержат похожие или совершенно разные данные ?
Таблицы абсолютно одинаковой структуры, но с разными данными внутри.
надеюсь, имеется в виду, что 32 таблицы в одну сливаются ))
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32887420
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-ЛюбительМлин! Я так и боялся. Даешь каждому ForeignKey по персональной таблице! Долой связь один-ко-многим! Ура!!!

Осталось допытаться, что за сотня с гаком полей в таблице сотрудников. Думаю, не менее изящное решение. Типа "зарплата за январь", "зарплата за февраль", ...
нет, это программа для вуза, и в главной таблице - список преподавателей с их "параметрами": должности, кафедры, деканаты, участие этих препододов в различных видах работ, научные звания и т.п. Всего около сотни параметров. А в остальных таблицах - справочники к этим "параметрам". А вот со связью - это правда. В таблицах-справочниках, которые будут подливаться в основную базу прийдется попробовать обойтись без связей...
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32887437
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vizio Yura_s Программист-Любитель32 таблицы содержат похожие или совершенно разные данные ?
Таблицы абсолютно одинаковой структуры, но с разными данными внутри.
надеюсь, имеется в виду, что 32 таблицы в одну сливаются ))
Нет, не в одну. 32 - это таблицы-справочники, которые по мере поступления новых справочных параметров обновляются.
Я прекрасно понимаю, что такую "прелесть" нужно делать клиент-сервером на оракле или интербейсе, и писать нормального клиента на делфях или на Си, но ситуация такова, что там, где будет набираться эта база нет сети и некуда воткнуть какой-нибудь сервер БД...
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32887605
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> участие этих препододов в различных видах работ, научные звания

То есть из 100 с лишним полей 32 имеют какие-либо справочники ? А если внима-а-а-ательно проанализировать структуру таблицы, наверняка можно выделить еще какие-то группы столбцов для отделения в таблицы, возможно более чем одноуровневые.

Сделать разделение на back-end mdb с данными и front-end с интерфейсом никак невозможно по условиям ТЗ ? Сразу головная боль ушла бы...
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32887636
Yura_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель>> участие этих препододов в различных видах работ, научные звания

То есть из 100 с лишним полей 32 имеют какие-либо справочники ? А если внима-а-а-ательно проанализировать структуру таблицы, наверняка можно выделить еще какие-то группы столбцов для отделения в таблицы, возможно более чем одноуровневые.

Сделать разделение на back-end mdb с данными и front-end с интерфейсом никак невозможно по условиям ТЗ ? Сразу головная боль ушла бы...

Да, именно 32. Допустим, написал препод книжку - описание книжки заносится в соответствующий справочник, сделал учебную программу по предмету - тоже в отдельном справочник. Но есть очень много полей крторые не нуждаются в справочниках, просто в это поле ставится соответствующая табелю о рагах рейтинговая оценка (доктор наук - столько-то, кандидат, столько-то). И таких полей довольно много. Плюс поля с паспортными данными и данными о месте работы, должности и т.п.
...
Рейтинг: 0 / 0
Сохранение ссылочной целостности. при слиянии баз
    #32888169
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если 2 преподавателя в соавторстве напишут книжку ? А если 3 ?

А если нужно хранить данные паспорта И загранпаспорта (ов) ?

А предыдущее (ие) места работы ?

В рамках 1 мегатаблицы со справочниками это нереализуемо...

Я бы еще разделил на таблички...
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сохранение ссылочной целостности. при слиянии баз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]