Краткое примечание: у меня есть 19 дней, чтобы выяснить проблемы моего клиента.
Справочная информация:
Клиент нанял подрядчика, который хвастался, что через три месяца он может получить новое приложение. Через два месяца и несколько дней меня привели, и человека отпустили; нет полного кода, нет мыслей, вложенных в схему, и мерзость для пользовательского интерфейса.
У меня есть два приложения: одно производственное и зрелое, а другое нуждается в любви. Один имеет все данные, которые мне нужны, а другой нет. Я пишу новый стиль кода TDD и нацеливаюсь на частично сфальсифицированную инфраструктуру SOA, которая охватывает все проблемы, кроме самих данных. Если бы у меня было больше времени, я мог бы использовать ликвидазу, чтобы преобразовать схемы в осколки мерзости (используйте свое воображение), но я не ... поэтому план Б следующий:
Приложение A (вставляет | обновляет | удаляет) сущность Foo, которая обновляет AppASchema.FooTable, которая посредством триггера записи обновляет AppBSchema.FooLikeTable и наоборот.
Я знаю, что это безумная идея, но это наименьшее из худших идей, которые у меня есть, мои опасения
- Можно создать бесконечный цикл (триггер AppA обновляет AppB, который обновляет AppA)
- Там нет высокой нагрузки, но это в основном удваивает число операций до n * 2, поэтому, если я достигну половины емкости сервера MySQL, кажется, что это будет эффективно при или почти на полную мощность для базовых вещей, таких как обновление индексов и тому подобное .
- Как смешанное благословение, разработчики оригинальных схем сделали все таблицы движком InnoDB ... это ужасно для производительности, но может ли эта установка обеспечить более высокий шанс сохранения целостности.
Мой временной бюджет для реализации триггеров составляет 12 часов или перебор.