Лучшие практики, Архитектура приложений MySQL
Я должен спроектировать систему, которая объединяет 4 приложения, эти приложения совместно используют много информации (которая в текущей системе дублирует информацию в базах данных). Моя первая идея состояла в том, чтобы использовать систему распределенных баз данных, чтобы избежать всех этих дубликатов и ручной синхронизации между системами. Я подумал, что почти все нуждается в реализации с самого начала (поскольку база данных является сердцем этих систем), поэтому я не не знаю, является ли комбинация время / деньги / реализация лучшим решением или нет.
Технологии, которые я намереваюсь использовать: MySQL Federated Engine для обеспечения распространения в базах данных. CakePHP: 2/4 приложения находятся в CakePHP, поэтому я буду придерживаться того же языка. Python: 1 приложение находится на Python Java: 1 приложение находится на Java
Будут ли у меня проблемы с вышеуказанными языками и движком базы данных?
Есть идеи, предложения? Любые отзывы будут оценены!
1 ответ
Вы проектируете сверху вниз. Вы строите снизу вверх.
Базы данных являются нижним слоем. Это последний этап проектирования и первый этап строительства. Моделирование данных, проектирование базы данных и администрирование базы данных являются основополагающими для хорошего управления данными. А без хорошего управления данными остальная часть проекта обречена. Пока база данных будет тем, что вы строите в первую очередь, вам необходимо иметь четкое представление о том, что вы собираетесь делать с данными. Посмотрите на потребности сверху вниз. Вы должны сделать это, прежде чем выбрать конкретные технологии. Возможно, вы сделали это, но просто не упомянули об этом в вашем вопросе.
К сожалению, базы данных, разработанные с учетом узкого охвата, сегодня являются скорее правилом, чем исключением. Интеграция непересекающихся баз данных в согласованную унифицированную базу данных (независимо от того, распределена она или нет) - далеко не тривиальная задача. Будут существовать тривиальные различия в таких вещах, как наименование и состав, и нетривиальные различия в концептуальной модели данных.
Удачи!