![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
связка двух таблиц ... [D7, XP]
zsergey © (2007-07-19 07:35:00)Всем привет! Есть две таблицы. Одна главная: TOTALS(name,adres,tel) и подчиненная ADR(adres). Надо связать их по полю adres таким образом, чтобы когда данные заносятся в главную таблицу, адреса в подчиненной добавлялись автоматически, т.е. адреса должны дублироваться.
Я сделал так: в DataSourse таблицы ADR в свойстве MasterSourse указал DataSourse гл. таблицы, сделал индекс по единственному полю в т.ADR и в MasterFields связал поля adres. Все. Но этого мало, записи в подч. таблицу не добавляются. Подскажите, как нужно делать...
Юрий Зотов (2007-07-19 11:05:00) [1]> zsergey (19.07.07 07:35)
Кстати - ведь и удаление записей, наверное, тоже должно быть совместным?
Юрий Зотов (2007-07-19 11:02:00) [2]> zsergey (19.07.07 07:35)
Чтобы запись куда-то добавилась, ее ведь надо добавить, верно? Не может же это произойти само по себе.
"Автоматическое" добавление/изменение записи в подчиненной таблице можно реализовать либо на стороне сервера (в триггере OnInsert/OnUpdate главной таблицы), либо в коде клиента (в обработчиках событий датасета).
Совместную модификацию главной и подчиненной таблиц лучше выполнять в одной транзакции, чтобы в случае какой-то ошибки не получить рассогласования данных в этих таблицах.
PS
А насчет дублирования данных все же подумайте - действительно ли в Вашей задаче оно необходимо? Если можно, то лучше, конечно, обойтись без него.
ЮЮ (2007-07-19 09:41:00) [3]> все спасибо, разобрался...
Ну-ну. Успехов!
zsergey (2007-07-19 09:28:00) [4]все спасибо, разобрался...
ЮЮ (2007-07-19 07:54:00) [5]> главная и подчиненная
несколько TOTALS млгут жить по одному ADR или один TOTAL иожет жить по нескольким ADR?
ЮЮ (2007-07-19 07:49:00) [6]Если влои что-нибудь почитать о реляционных базах данных, отказаться от ADR(adres) вообще. На кой она нужна, если в TOTALS.adres будет то же самое. Информация в БД не должнадублироваться.
З.Ы. а где TEL(tel) - телефонов тоже может быть несколько :)