Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-48081
ZEE
2002-07-28 17:00
2002.08.15
размеры PopupMenu


1-48158
DeMoN-777
2002-08-01 12:36
2002.08.15
Как обработать событие OnKeyPress у TWebBrowser ?


1-48122
Night cold
2002-08-01 09:39
2002.08.15
DLL


3-48008
Roman9
2002-07-27 10:53
2002.08.15
Транзакции


6-48229
Марина
2002-05-31 14:54
2002.08.15
Имя пользователя, занявшего файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский