Используйте Access или MySQL в качестве серверной базы данных

StackOverflow https://stackoverflow.com/questions/807602

Вопрос

Я пишу приложение распределенной базы данных с интерфейсом Access.По сути, mde с некоторыми формами и отчетами.Должен ли я использовать mdb access для хранения внутренних таблиц или использовать MySQL или какую-либо другую базу данных?

Это было полезно?

Решение

Лично я бы использовал SQL Server Express или MySQL.Они масштабируются лучше, чем серверная часть Access, и когда вы будете готовы отказаться от Access, вы сможете сделать это без необходимости преобразовывать как серверную часть, так и внешний интерфейс.

Другие советы

SQL Server Express может быть хорошим решением, но у него также есть некоторые довольно строгие ограничения.Кроме того, вам нужно будет убедиться, что его лицензия соответствует вашим потребностям.

Если ваши потребности в параллелизме и масштабируемости ограничены (скажем, 10-15 одновременных пользователей с умеренным объемом операций ввода-вывода), нет ничего плохого в использовании серверной части MDB.Я не фанат Access, но по опыту знаю, что обычно это срабатывает.

Кроме того, администрирование серверной части MDB практически бесплатно, в то время как MySQL или SQL Server Express потребуют некоторой реальной работы администратора базы данных.Нет смысла браться за что-то большее, если вы достаточно уверены, что оно вам никогда не понадобится.

Для фактического развертывания вы хотели бы использовать реальную базу данных, а не движок Access / Jet DB.

При этом, самое замечательное в access то, что у него есть инструмент (посмотрите в меню) для разделения одного MDB-файла на базу данных и код.Сделайте это, а затем направьте код на новый источник данных.

Возможно, вам придется немного изменить некоторые запросы.

Я думаю, что SQL Server Express был бы вашим лучшим вариантом.MySQL - хорошая база данных для вашего бэкэнда, но Access лучше интегрируется с SQL Server Express (конечно, MS хочет, чтобы вы использовали его собственные продукты, даже если они бесплатные), а Express edition довольно хорош, учитывая, что он бесплатный.Если позже приложению потребуется значительное масштабирование, то обновление до платного SQL Server выполняется просто, а драйвер остается тем же.

Я думаю, вам следует определить, что вы подразумеваете под "распределенным приложением БД". Этот термин, насколько я понимаю, обычно выводит Jet из строя для серверной части.

Никто не сможет ответить на ваш вопрос без указания численности пользователей, операционной среды, требований к безопасности и надежности и т.д.Если он предназначен для 10 пользователей и это не бизнес-данные, серверная часть Jet может быть идеальной и упростить разработку и администрирование.Если у вас 100 пользователей, вы определенно захотите использовать серверную часть.Если у вас есть важные соображения безопасности (например, соответствие требованиям HIPAA), вы, вероятно, захотите использовать базу данных со встроенной защитой на уровне сервера, а не Jet.

Но есть множество приложений, где серверная часть Jet была бы просто великолепна - быстрая и абсолютно надежная.

Есть и третий вариант:вы могли бы использовать что-то вроде Данные EQL таким образом, вы можете использовать обычный сервер Access, но предоставьте каждому пользователю его собственную копию (и синхронизируйте между ними), чтобы помочь с проблемами многопользовательской масштабируемости.Таким образом, вам не нужно вдаваться в сложности использования "реального" серверной части базы данных.

Выбирая MySQL, вам нужно будет установить MySQL Connector (ODBC) в каждом клиенте.SQL Server Express был бы хорошим выбором, если вам не нравится распространять дополнительные компоненты, к тому же ADO лучше работает с MS SQL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top