Проверять и обновлять структуру (таблицы, столбцы) старой базы данных mysql на основе более новой версии этой базы данных - PullRequest
0 голосов
/ 06 апреля 2020

Я создаю приложение CRM. NET для коммерческого использования.

Для базы данных я выбираю MySQL сервер.

Каждая новая версия программного обеспечения требует изменений MySQL структура базы данных (добавить столбцы, добавить таблицы, изменить тип столбца и т. Д. c).

Мне нужно найти эффективный способ публикации sh более новой версии программного обеспечения

  • Для проверки базы данных моих клиентов на основе моей исходной (последней) MySQL базы данных
  • Для обновления базы данных моих клиентов, если изменения существуют.

1 Ответ

1 голос
/ 07 апреля 2020

Давайте начнем с формулировки вопроса:

Каждая новая версия программного обеспечения требует изменений в структуре базы данных MySQL (добавление столбцов, добавление таблиц, изменение типа столбца и т. Д. c).

Если вы разрабатываете коммерческое приложение CRM, плохой практикой является требование обновления базы данных в КАЖДОЙ новой версии. Это подразумевает плохой дизайн и анализ. Суть моего комментария в том, что вы должны разрабатывать свое приложение так, чтобы оно не нуждалось в обновлении базы данных в каждой новой версии. Далее в том же заявлении вы написали: «измените тип столбца». Поверьте, вы не хотите делать это в базе данных клиента с данными. Вы никогда не должны находиться в положении, когда вам нужно изменить тип столбца в базе данных с данными в нем. Здесь нет места для анализа этого, но поверьте мне на слово.

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

  1. Делайте все вручную. Поддерживайте свои собственные сценарии обновления БД с версии на версию и применяйте их по мере необходимости. Это самый болезненный способ сделать это, но он дает вам свободу делать все, что вы хотите. В том числе изменение типа столбца. Если ваше приложение относительно маленькое, то вам следует предпочесть этот метод.
  2. Используйте бесплатную библиотеку ORM, например Entity Framework . Это даст вам больше гибкости при фокусировке в бизнес-логике приложения, поскольку устраняет необходимость в большей части кода доступа к данным, который обычно приходится писать разработчикам. Кроме того, есть различные способы автоматической миграции базы данных. Взгляните, например, здесь . Если ваше приложение не имеет каких-либо особых или необычных требований в отношении сохранности и доступа к данным, вам следует go с этим.
  3. Использовать коммерческую библиотеку ORM, например Dev Express XPO (на самом деле бесплатно, если вы не хотите покупать поддержку, но я настоятельно рекомендую купить). Вы получите все преимущества библиотеки ORM, а также множество улучшений, таких как, например, настройка фильтрации данных, обработка данных клиента, упрощенная обработка BLOB-данных, таких как изображения или другие двоичные файлы, расширенная поддержка базы данных, например SQL Server, MySQL, Oracle, PostgreSQL, Firebird et c. Я использую XPO уже много лет, и я вполне доволен этим. Если в вашем приложении есть особые потребности в обработке данных, я рекомендую это.

Вывод: Вам определенно следует go с библиотекой ORM, поскольку она позволяет отделить бизнес-логи c вашего приложения из уровня данных и не связывает приложение с одним типом базы данных и, таким образом, дает вам большую гибкость. Например, вы можете создать спецификацию (Business Object Model) вашего приложения и использовать ее со многими вариантами, такими как веб-API, настольные клиенты, веб-приложения и т. Д. c.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...