Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.15;
Скачать: CL | DM;

Вниз

многотабличное редактирование   Найти похожие ветки 

 
Tauren_chief   (2002-07-24 13:52) [0]

Проблема в следующем, есть, если совсем упростить, 3 таблицы:
table1(table1_id, table2_id, table3_id), table2(table2_id, table2_info), table3(table3_id, table3_info). Соответственно в 1 табличке хранятся id-ники остальных 2-х таблиц, а во 2-й и 3-й сама инфа, которую и требуется отобразить. Отобразить то еще можно, а вот добавить возможность редактирования уже напряженно... Т.е при добавлении допустим в table3_info данных происходит автоматическое увеличение table3_id в table3, а так как таблички связаны, то дальше идет ругань на попытку изменения table3_id в table1 :(( Не подмайте что я ленивый, понятно что все можно написать sql-query, просто BD уж больно здоровая... Хотелось бы все как раз и готова :) Может кто что-нибудь посоветовать?


 
Val ©   (2002-07-24 13:58) [1]

тип субд?


 
Lord Warlock ©   (2002-07-24 14:03) [2]

Таблица1 - мастер для 2 и 3?


 
Tauren_chief   (2002-07-24 14:04) [3]

1.mysql
2.Да


 
Val ©   (2002-07-24 14:15) [4]

связь не очень понятна-если вы вставляете запись допустим в 3-ю таблицу, вам естественно нужно затем добавить новую запись в первую, где будут заполнены поля id1, id3, а как же быть с id2? или вы добавляете сразу во 2-ю и 3-ю? тогда последовательность такова-добавление в 2,3(или наоборот), затем добавление полученных id в первую, правильно?


 
Lord Warlock ©   (2002-07-24 14:19) [5]

Вообще-то по правилам сначала вносится запись в главную таблицу, иначе записи в рабских таблицах "повисают неизвестно где", те может все пройти без ошибки, только этих записей больше не увидишь. Но если курсор в главной таблице установлен на какую-либо запись, добавляться должно без проблем. А дело очевидно в том, что при работе с такими вещами как MySQL невозможно автоматически получить ID для связи с таблицами, так что пиши запрос...

И еще, если id рабских таблиц увеличивается само, эти id нельзя использовать для связи мастер-раб. id для раба должно приходить от мастера.

Честно говоря странная задача...


 
Johnmen ©   (2002-07-24 14:33) [6]

>Lord Warlock © (24.07.02 14:19)

По-моему ты путаешься в понятиях "мастер-детейл" и "главный-подчиненный" ... :)))


 
Tauren_chief   (2002-07-24 14:44) [7]

Да как же странная? Помоему самоя что ни на есть типовая... Вот скажем есть у нас регион, и есть у нас допустим типовая продукция. Регионов у нас 89, продукции допустим 100 типов. А записей в БД 1000. Соответственно избавляемся от связей M:M, для чего делаем 3 таблички, в одной регион, в другой продукция, 3-ей связываем... А теперь надо написать клиентика чтобы он мог записи вносить, изменять и просматривать. По началу я хотел честно, по человечески, нарисовать обычных скажем Edit"ов и кнопочку, нажимаешь идет проверка на существование уже такой записи, если нет, то вставляем, ну понятно короче... Потом подумал, вдруг уже все написали до меня :)
Задачка то уж больно типовая.


 
Lord Warlock ©   (2002-07-24 14:45) [8]


> Johnmen © (24.07.02 14:33)


Какая разница. имеется в виду одно и то же


 
Lord Warlock ©   (2002-07-24 14:47) [9]


> Tauren_chief (24.07.02 14:44)


Понял о чем речь, к сожалению за тебя не написали.


 
Sergey13 ©   (2002-07-24 15:05) [10]

2Tauren_chief (24.07.02 14:44)
Так по твоему описанию получается что не 1 мастер для 2 и 3. А 2 и 3 мастера для 1. Тогда непонятно почему у тебя в первую что то автоматом пишется. Ведь вводя в 3 таблицу новую сущность ты не описываешь как она соотносится с сущностями из 2 таблицы. Это уже другое действие. У тебя наверное форин кеи неправильно определены потому и ругается. Не 2 и 3 ссылаются на 1, а наоборот.


 
Val ©   (2002-07-24 15:07) [11]

если первая таблица нужна для развязки М:М, то первое поле там не нужно, сама пара(id2,id3) д.б. уникальна.


 
MsGuns ©   (2002-07-24 17:55) [12]

Val указал самое надежное средство ! Зачем добавлять в детал значение связующего ключа, если оно подразумевается (при условии, конечно, что DataSet`ы связаны отношением Master-Detail



Страницы: 1 вся ветка

Текущий архив: 2002.08.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
3-47942
Evyshka
2002-07-24 09:27
2002.08.15
MIdas


6-48217
Corte ™
2002-05-31 09:15
2002.08.15
Помогите!!!!


14-48255
Дремучий
2002-07-18 13:26
2002.08.15
первая лпасточка... UBPFD off-line Сlient


3-47913
Tauren_chief
2002-07-24 13:52
2002.08.15
многотабличное редактирование


1-48127
BlackSun
2002-07-31 17:10
2002.08.15
exe+dll->exe