2010-05-05 2 views
1

Я только что взял проект для клиента, а схема базы данных находится в полном беспорядке. Я хотел бы переименовать загрузку полей, создав базу данных отношений.Событие MYSQL для обновления другой таблицы базы данных

Но выполнение этого будет кропотливым процессом, так как у них есть API-интерфейс. Таким образом, идея заключалась бы в создании новой базы данных и начале повторного написания кода, чтобы использовать это вместо этого. Но мне нужно, чтобы эти таблицы синхронизировались во время этого процесса.

Согласны ли вы с тем, что я должен использовать MYSQL EVENT для продолжения обновления новой таблицы на вставках/обновлениях? & удаляет ??

Или вы можете предложить лучший способ?

Упование вы можете посоветовать !!

спасибо за любой вход я получаю

+0

Если вам нужно будет переписать API, возможно, имеет смысл начать с триггеров, но затем начните делать две отдельные (вставки, dleletes и т. Д.) Одну для старой таблицы и одну для новой. Это позволит вам параллельно запускать код и проверять, что он работает должным образом. Вы также можете рассмотреть возможность написания нового кода и схемы db отдельно от существующей системы. Затем планируйте преобразование данных и переключение на новую систему. –

+0

Привет, Стив, это именно то, что собирались делать. Мы надеемся, что мы снова перепишем API, а затем перестроим сайт, используя API. Я думал, что триггеры, основанные на времени. Поэтому я спрашиваю. – Lee

+0

никаких триггеров не основаны на времени, а действии (т. Е. Вставить, удалить и т. Д.) См. Здесь http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html –

ответ

1

У меня была такая же проблема в моем проекте. Я сделал то же, что и вы, - писал всю новую базу данных. Мы разработали новую базу данных и код подстановки, и после завершения этой работы мы создали сценарий миграции (небольшое приложение), в котором была выполнена миграция из старой в новую базу данных.

Надеется, что это дает вам некоторые идеи ...

+0

Спасибо, но это не будет возможно. Это будет медленный прогресс, так как нам снова создать базу данных, а затем пройти все Запросы на этом сайте и просто перезапустить будет опасно. Нам нужен способ осуществить это постепенно. – Lee

0

У меня был такая же проблема, как хорошо, и пошел по пути дублирования данных в точке входа пользователя (в основном сохраняется на обеих базы данных одновременно, так как оригинальной схеме не хватало всей необходимой информации). После нескольких месяцев развития клиент понял, что собирается переходить к совершенно новой базе данных и считает это слишком рискованным (и я согласен с ним).

Таким образом, я бы посоветовал четко указать вашему клиенту, что вы собираетесь внедрить новую базу данных вместо итеративного рефакторинга текущего.

Смежные вопросы