Связи таблиц справочника контактов
Материал из GedeminWiki
Версия от 16:47, 4 октября 2012; SYSDBA (обсуждение | вклад)
Связи между таблицами GD_CONTACT, GD_PEOPLE, GD_COMPANY и др.
Восстановление целостности данных справочника контактов
При работе с данными в базе напрямую (минуя бизнес-классы) возможно нарушение структуры справочника контактов. Например, в таблице GD_CONTACT присутствует запись с CONTACTTYPE = 3, а в таблице GD_COMPANY связанная с ней запись отсутствует. Восстановить порядок можно поочередно выполнив следующие запросы:
1)
INSERT INTO gd_company (contactkey, fullname) SELECT c.id, c.name FROM gd_contact c LEFT JOIN gd_company co ON c.id = co.contactkey WHERE c.contacttype IN (3, 5) AND co.contactkey IS NULL
2)
INSERT INTO gd_bank (bankkey, bankcode) SELECT c.id, c.id FROM gd_contact c LEFT JOIN gd_bank b ON c.id = b.bankkey WHERE c.contacttype = 5 AND b.bankkey IS NULL
После выполнения следует зайти в редактирование проблемных объектов и ввести/исправить недостаюшую информацию.