|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.09.2010, 21:28 | #1 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
выбор результатов
доброго время суток.
народ, подкиньте идею по решению такого вопроса (что-то никак не могу заставить мозг работать как надо ) : имеется таблица opers с полями ID, oper_id, oper_result и т.д. (таблица всех проделанных работ) имеется таблица dic_oper_type с полями id, oper_type_id, oper_name и т.д. (таблица типов работ) поля opers.oper_id и dic_oper_type.oper_type_id являются связанными один ко многим. так вот мне нужно (возможно создать еще одну таблицу) которая бы имела связь с таблицей dic_oper_type и содержала в себе перечень результатов выполнения работы. Напр: 1) работа "импорт" - тип работы "загрузка данных в БД" - возможные результаты выполнения "1.Успешно; 2.Ошибка загрузки; 3.Обработано с ошибками" 2) работа "экспорт" - тип работы "выгрузка данных с БД" - возможные результаты выполнения "1.Выгружено; 2.Подтверждено; 3.Обработано; 4.Обработано с ошибками ========= субд: Firebird 2.1 у кого есть какие-нить идеи по реализации подобной задачи ?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... Последний раз редактировалось Yurk@; 17.09.2010 в 21:59. |
17.09.2010, 22:09 | #2 |
Пользователь
Регистрация: 12.09.2010
Сообщений: 69
|
А зачем нужна связь dic_oper_type и результатами? Почему бы не создать, например dic_oper_result со связкой с полем oper_result таблицы opers.
SELECT BEST FROM LIFE
|
17.09.2010, 22:22 | #3 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
дело в том что для разных oper_type возможны одинаковы oper_result.
вот мне и нужно сделать так, чтобы при выборе определённого oper_type выбрать только те oper_result которые подходят для него. я, конечно, могу набить несколько одинаковых oper_result-ов с ссылками на разные oper_typе, НО это не рационально. поэтому и ищу альтернативные варианты ==================== UPD пока единственное более или менее нормальное что пришло в голову это: между таблицами dic_oper_type и dic_oper_result создать промежуточную таблицу вида: oper_type_id|oper_result_id 1|1 1|2 1|3 2|1 2|2 2|3 и потом доставать все результаты связывая таблицы через эту таблицу --------------------- у кого будут другие идеи ???
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... Последний раз редактировалось Yurk@; 17.09.2010 в 22:35. |
17.09.2010, 22:44 | #4 |
Пользователь
Регистрация: 12.09.2010
Сообщений: 69
|
Не надо промежуточной таблицы. Пусть будет одна таблица dic_oper_result с полями ID, Oper_type, Oper_result
1|1|1 2|1|2 3|1|3 4|2|1 5|2|2 6|2|3 И свяжите ее поле ID с полем oper_result таблицы opers. В этом случае если в таблице opers поле oper_resurs=3 значит была операция 1 с результатом 3, А если oper_resurs=6 значит была операция 2 с результатом 3. Результаты одинаковы а операции разные. А вот дальше можно уже связывать dic_Oper_resurs.oper_type --> dic_oper_type.oper_type_id
SELECT BEST FROM LIFE
Последний раз редактировалось Dimasw; 17.09.2010 в 22:50. |
17.09.2010, 22:55 | #5 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
Dimasw, в итоге у тебя получится та же картина что и у меня! т.к. третье поле (коды результатов) придется все-равно расшифровывать
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... |
17.09.2010, 23:11 | #6 |
Пользователь
Регистрация: 12.09.2010
Сообщений: 69
|
Если я правильно понимаю, то расшифровку можно включить в oper_result
1|1|1|Успешно 2|1|2|Ошибка загрузки 3|1|3|Обработано с ошибками 4|2|1|Выгружено 5|2|2|Подтверждено 6|2|3|Обработано 7|2|4|Обработано с ошибками Если же виды результатов у всех типов операций одинаковы, т.е. таблица выглядит так: 1|1|1|Успешно 2|1|2|Ошибка загрузки 3|1|3|Обработано с ошибками 4|2|1|Успешно 5|2|2|Ошибка загрузки 6|2|3|Обработано с ошибками то нужна еще одна таблица dic_result_name с полями 1|Успешно 2|Ошибка загрузки 3|Обработано с ошибками Но если типов операций и их результатов немного, и они не будут изменяться, то я бы одну таблицу оставил. А в общем получилась та же промежуточная таблица. Но это самый правильный вариант, на мой взгляд.
SELECT BEST FROM LIFE
Последний раз редактировалось Dimasw; 17.09.2010 в 23:16. |
17.09.2010, 23:17 | #7 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
да данном этапе видов операций 50 и он расширяется (но не превысит 200-250)
видов результатов на каждую операцию: 2-4 вида всего уникальных видов результатов около 10-15 ... т.е. повторяться они будут часто можно оставить и одну таблицу, но мне не очень нравится идея с повторяющимся текстовым значением в таблице, поэтому я больше склонен к идее разделения их на 2 шт.
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... Последний раз редактировалось Yurk@; 17.09.2010 в 23:20. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перебор результатов | coirius | Помощь студентам | 3 | 12.12.2009 14:04 |
Анализ результатов | Foxtrot_1 | Помощь студентам | 0 | 04.10.2009 18:49 |
Сохранение результатов | May86 | Microsoft Office Excel | 2 | 24.09.2009 15:10 |
Вывод результатов! | Серый Рыйцарь | Помощь студентам | 3 | 21.05.2009 07:46 |
Сохранение результатов | program123 | Общие вопросы Delphi | 1 | 13.03.2009 22:10 |