База данных на файловом сервере (Windows)
Я работаю в компании, и мне нужно очень быстро создать программу. Моя программа будет работать с 100 пользователями, и они будут совершать около 100 транзакций в день. Поскольку я испытываю нехватку времени и другие ограничения, невозможно настроить правильную базу данных, работающую на сервере. Поэтому я ищу альтернативы, которые имеют какую-то поддержку транзакций без запуска на сервере. Я полагаю, что это можно решить с помощью Microsoft Access, который является хорошим решением, хотя я полагаю, что столкнусь с проблемами блокировки. Разве не так, что вся таблица блокируется, как только один пользователь пытается прочитать ее? В любом случае... Мой вопрос, какие есть другие альтернативы.
7 ответов
Реальный ответ, вероятно, будет значительно отличаться в зависимости от того, о каком количестве данных здесь идет речь.
Я бы посмотрел на SQLite. Он поддерживает транзакции, триггеры и т. Д. И поддерживается такими вещами, как NHibernate, которые могут значительно упростить жизнь при отображении вашей базы данных.
Вы можете посмотреть на SQL CE, это очень хорошая локальная база данных от Microsoft.
Я думаю, что Firebird может быть очень хорошей альтернативой. Firebird доступен во встроенном и может работать с сервером. У этого есть много особенностей.
Есть много вариантов. Как уже говорили другие, настройка и запуск с SQLLite, SQL Server Express или любой из ряда других небольших, легких и бесплатных баз данных.
Предполагая, что вам это нужно сегодня, я бы выбрал ту, о которой вы знаете больше всего. Кроме того, я бы держался подальше от всего, что напоминало бы Access. Если у вас еще нет опыта использования его для многопользовательского доступа, вы потратите слишком много времени на выяснение проблем.
Тем не менее, я бы сначала склонился к SQL Server Express. Это бесплатно и может масштабироваться до полного сервера SQL без изменений кода.
Я полагаю, что это можно решить с помощью Microsoft Access, который является хорошим решением, хотя я полагаю, что столкнусь с проблемами блокировки.
Я бы сказал, что блокировка и постановка в очередь будут наименьшим из ваших беспокойств. При наличии 100 одновременных пользователей Access, вероятно, будет поврежден за несколько минут. С 10 тыс. Записей в день, это, вероятно, затормозит всю вашу сеть через месяц или около того.
Поскольку я испытываю нехватку времени и другие ограничения, невозможно настроить правильную базу данных, работающую на сервере.
Вы можете запустить сервер базы данных через час. Гораздо меньше времени, чем вы потратите на хакерство в Access. Имеются образы виртуальных машин с открытым исходным кодом, MSSQL Express, размещенные решения и т. Д. Время и стоимость не должны быть проблемой.
Единственное, о чем я могу подумать, если бы вы использовали Access, это поддержка форм (которая может быть подключена к MSSQL Server) или обслуживание DBA. Честно говоря, на 100 пользователей Access будет так много нянчиться, что вы можете позволить себе размещенный экземпляр SQL и все еще впереди.
Является ли sqlite правильным решением? Не уверен, как поддерживается удаленное хранилище. Это не общая черта.