«Билл, похоже, два менеджера зарезервировали один и тот же сервер в нашей лаборатории на одни и те же дни. Как это могло случиться?» С таким вопросом ввалился в мой рабочий кабинет менеджер испытательной лаборатории. «Не можешь ли ты вникнуть в это дело и разрешить недоразумение? Они кричат на меня, заявляя, что им обоим нужно оборудование и что я срываю график выполнения их проекта».
Несколько лет назад я с помощью СУБД MySQL разработал приложение, отслеживающее использование оборудования. Стандартным механизмом хранения для MySQL была система MylSAM, которая не поддерживала ограничения внешнего ключа. База данных содержала много логических взаимосвязей, но не позволяла принудительно установить целостность на уровне ссылок.
В процессе развития проекта и применения новых способов обработки данных возникла проблема: когда целостность на уровне ссылок не обеспечивалась, в отчетах появлялись несоответствия, не согласовывались промежуточные суммы и расписания велись параллельно.
Руководитель проекта попросил меня написать скрипты контроля качества, которые можно было бы периодически исполнять, чтобы узнать, когда возникают несоответствия. Данные скрипты анализировали состояние базы данных, находили ошибки, такие как висячие строки в дочерних таблицах, и отправляли электронные сообщения с отчетами о них.
Эти скрипты должны были проверять все взаимосвязи таблиц. По мере роста объема данных и количества таблиц росло также число запросов контроля качества, и на исполнение скриптов уходило больше времени. Отчеты, отправляемые по электронной почте, также увеличивались в объеме. Наверное, и вам знакома такая ситуация?
Решение на основе скриптов, разумеется, действовало, правда, оно напоминало заново изобретенный дорогостоящий велосипед. Что мне требовалось, так это найти способ вызывать отказ приложения каждый раз, когда пользователем передавались недопустимые данные. Угадайте, что делают ограничения внешнего ключа?
Опубликовал vovan666
June 18 2013 12:25:52 ·
0 Комментариев ·
3043 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.