Форум: "Базы";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];
Внизмноготабличное редактирование Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c