Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизСвязь один ко многим Найти похожие ветки
← →
ST_ (2003-11-07 01:51) [0]Многоуважаемый ALL, вот тебе ещё один вопрос. Необходимо связать две таблицы связью один ко многим в Pararox 7. Мои действия:
1) В первой (главной) таблице создаю поле Ind1 типа AutoIncrement.
2) В подчинённой тиблице создаю поле Ind2 типа Long Integer.
3) В подчинённой таблице создаю secondary index Ind1 -- Ind2
4) Выставляю всё в delphi.
Теперь при редактировании подчиненной таблици, когда я создаю вторую запись мне вылетает мат "Index Violation", и вылетает, пока я не удалю одну из зиписей. Как это порешать?
← →
ST_ (2003-11-07 02:04) [1]Прошу прощения, не Index Violation, а Key Violation!
← →
MsGuns (2003-11-07 13:25) [2]Чтобы бала возможна связь "Один-ко-многим", надо, чтобы в подчиненной таблице было хотя бы на одно поле-ключ (или ун.индекс) больше, чем в основноу (мастер) таблице. Т.е. в твоем примере, у детальной таблицы должно быть как min 2 поля:
1. ind1 (или с любым другим именем) - для связки с мастером
2. ind2 - собств.уник.поле (Primary или Secondary index)
← →
MsGuns (2003-11-07 13:38) [3]Блин, коряво получилось ;( Попробую на примере:
БД лицевых счетов плательщиков каб. TV
-----------------------------------------
Таблица плательщиков (Master):
1. ID int (autoinc) идент-р плательщика Primary Key
2. FAM Varchar Фамилия
3. NAM Varchar Имя
4. NAM2 Varchar Отчество
5.. Адрес + доп. информация
Таблица проплат (Detail)
1. ID int (autoinc) идент-р платежа Primary Key
2. IDP int (связка с Master) PK или Un.Index
3. PDAT Date дата платежа
4. PSUM Currency Сумма платежа
5.. данные о РС, МФО и др.
← →
Виталий Панасенко (2003-11-07 17:09) [4]Во-первых, в подчиненной таблице должно быть как минимум два поля в Primary Index - Ind2 и еще одно типа AutoIncrement для обеспечения уникальности индекса (по двум полям - а так у вас дублируется значение Ind2 из главной таблицы, что противоречит понятию Primary Key).. Во-вторых, в обработчике подчиненной таблицы OnNewRecord Ind2 подчиненной таблицы присваивать значение Ind1 главной - и все будет (должно) работать...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c