Многопользовательское приложение без необходимости устанавливать что-либо - встроенная база данных, которая позволяет выполнять одновременную запись пользователем?
Мне нужно создать приложение, которое
- используется несколькими пользователями одновременно
- не требует установки любой
- имеет централизованное хранилище данных
- данные должны храниться внутри.
- я не имеют доступа к внутренним серверам баз данных или веб-серверам
Эти ограничения не являются моими собственными - они поступают от моего клиента - это филиал глобальной компании, и на глобальном уровне компании существуют некоторые ограничения в области ИТ-политики, что они могут не влияют на их уровень (что-то подобное), но они все еще нуждаются в программном обеспечении.
Мое намерение заключалось в том, чтобы найти КАК, чтобы предоставить им рабочую часть программного обеспечения, несмотря на эти ограничения.
Таким образом, единственный вариант (насколько мне известно) - хранить данные в сетевом ресурсе - в одном или нескольких файлах. Проблема заключалась в том, чтобы найти способ обеспечения одновременного доступа к записи для этих файлов.
ИССЛЕДОВАНИЕ пока
- Сначала мне пришло в голову использование SQL Server Compact и размещение его в сетевом ресурсе
SQL Server Compact позволяет только одно соединение, если оно расположено на сетевом ресурсе
- Затем я нашел SQLite - сделал некоторые исследования и выяснил, что он имеет некоторые улучшения по сравнению с SQL CE
Файл базы данных SQLite заблокирован при записи, но возможны параллельные операции чтения
- Затем я нашел VistaDB, который, кажется, предлагает функциональность, которая мне нужна, но она очень дорогая - она стоит 1295 $за разработчика...
Встроенная база данных VistaDB обеспечивает блокировку на уровне строк и таблиц!
Так уточненный вопрос
Какие встроенные базы данных поддерживают одновременный доступ к записи пользователей? (Есть ли альтернативы для VistaDB в этом отношении?) - пожалуйста, предоставьте факты, а не мнение.
Ответы
Ответ 1
1) Единственная встроенная база данных, поддерживающая одновременное редактирование, - VistaDB (по крайней мере, мне не удалось найти какой-либо другой вариант)
Официальный сайт VistaDB → ознакомьтесь с разделом "Плюсы/минусы" ! - (..) Встроенные базы данных обычно блокируют всю базу данных для каждой вставки операции, мы этого не делаем. Мы обеспечиваем блокировку на уровне таблицы и строки.
Хорошо, что VistaDB - он сначала поддерживает код Entity Framework!
Относительно цены - есть скидка для micoISVs (450 $+ 125 $апгрейдов на один год)
2) Если вы знаете, что параллельная запись в базу данных будет очень редка, тогда вы можете выбрать SQLite, которая является свободной встроенной базой данных, потому что SQLite позволяет одновременное чтение, но только одно соединение при записи в базу данных. Не найдено ни одной информации о поддержке EF.
3) Если у вас будет только очень мало пользователей, то SQL Server Compact может быть лучшим вариантом - он поддерживает платформу Entity Framework.