2010-06-07 2 views
2

Я начинаю проект POS (точка продажи). Система таргетинга будет написана на C# .NET 2 WinForms и в качестве основного сервера базы данных. Мы собираемся использовать MS-SQL Server. Поскольку у нас есть много POS-устройств в цепочке для одного магазина, я буду рад иметь базовую систему баз данных на каждом POS-устройстве.Как выбрать световую версию системы баз данных

Сценарий следит за тем, когда главный сервер идет вниз! POS-приложение должно продолжить работу «off-line» с локальной базой данных, пока соединение с основным сервером не появится снова.

Теперь я в дилемме, какая локальная база данных будет наиболее удобной для меня. Вот некоторые примечания для помогать мне мне точку в правильном направлении:

  1. быть легким «Мои POS устройство еси обычно старым и страдание с выступлениями»
  2. быть свободным «У меня есть много устройств, и я не привычка к дополнительной цене рядом с основным SQL-серьером »
  3. Однажды я очень хочу попробовать весь этот порт на ОС Mono и Linux.

Вот что я исследовал до сих пор:

  1. Простой XML «свет, но я боюсь производительности Моя главная таблица элементов является средняя 10K записей»
  2. SQL-Express «Я боюсь, что мои устройства POS плохие с аппаратным обеспечением для SQLExpress, а также сложно установить на каждом устройстве и настроить«
  3. Менее известные Advantage Database Server имеют бесплатное распространение автономной системы ADT.
  4. DBF с расширенной библиотекой, «Уважением к старому доброму DBFs, но та эпоха за мной с ограничителем и DBFs»
  5. MS Access
  6. Sqlite «Главным образом, как сейчас, но я боюсь, как это происходит в пару с MS SQL они имеют одинаковые типы данных ».

Я знаю, что в этом SO есть много субъективных данных, но, по крайней мере, кто-то может рекомендовать некоторые другие системы баз данных, или вещи, которые я обувал, больше всего привлекают внимание перед моей выборкой.

ответ

5

SQL Server Compact

Он предназначен для встраиваемых устройств (т.е. Windows Mobile), но также может работать на ПК. Это 2 МБ, работает в процессе, один файл базы данных, который может иметь любое имя, которое вам нравится.

Его предназначение - локальная высокопроизводительная база данных. Вы не можете подключиться к нему удаленно и не поддерживают хранимые процедуры или пользовательские функции.


Но чтобы ответить на ваш реальный вопрос: как выбрать?

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

2

Я бы предложил Sql Compact Edition, поскольку он легкий и бесплатный, поэтому он решает две из ваших трех проблем. Я понятия не имею, работает ли это на Mono .....

Я использовал его в прошлом, и на самом деле я был впечатлен производительностью.Один большой недостаток - отсутствие хранимых процедур ...

3

Я делаю то же самое: центральный сервер, вероятно, работает на сервере MS SQL и распределенных системах, хотя они работают под управлением Linux. Мы решили сделать передачу данных в XML и использовать sqlite в распределенных системах.

Это очень ранние дни, но пока все идет хорошо.

Есть .net привязки для sqlite.

Поэтому мы выбрали SQLite были:

  1. , потому что она не нуждается в какой-либо управления базами данных, которая будет сложно на удаленных системах.
  2. Он кажется очень широко используемым: например, firefox использует sqlite для локального хранилища.
  3. Мы можем использовать его в Windows и Linux.
  4. Предполагается, что он не потеряет данные, если произойдет непредвиденное отключение электроэнергии.
2

Я использую System.Data.Sqlite, который представляет собой обертку с открытым исходным кодом ADO.Net вокруг Sqlite от http://sqlite.phxsoftware.com/. Вы можете использовать его из Visual Studio для создания баз данных. Он поддерживает подмножество типов полей Sql Server, и запись класса интерфейса между двумя базами данных должна быть быстрой. И вы получаете преимущества простого развертывания, включая единую DLL в своем проекте и базу данных с одним файлом. И это также включает в себя шифрование.