2011-09-29 5 views
0

네트워크에 연결할 수있는 약 12 ​​개의 테이블을 사용하는 애플리케이션 (현재 foxpro)이 있습니다. 테이블은 다양한 방식으로 관련되어 있지만 복잡하지는 않습니다. 고객 주문 시스템과 비슷합니다.소규모 네트워크 애플리케이션에 어떤 데이터베이스를 사용해야합니까?

MS Visual Studio를 사용하여 C#으로 다시 작성하고 싶습니다. 응용 프로그램은 데스크톱 전용이지만 주어진 시간에 최대 5 명의 사용자가 액세스 할 수 있습니다.

질문은 어떤 DB를 사용해야합니까? 다음과 같아야합니다.

  • 응용 프로그램과 함께 설치하기 쉽습니다. 최대 3 또는 4 컴퓨터

내가 SQL Express를 살펴 보았다하지만 공유 문제가 서버 컴퓨터가 필요에 SQL에 대한 매우 복잡하고 설치로 보이는에서 공유

  • 지원. DB4O는 더 많은 미디어 리치 애플리케이션을위한 것 같습니다.

    나는 Foxpro에서 이미 가지고있는 것을 달성하기 위해 합리적으로 고통이없는 방법이기 위해 C#에 상당히 익숙하다.

    일부 사용자는 Foxpro를 너무 크게 늘리면 미래에 추가 할 수있는 기능이 필요한 이유를 묻습니다.

    저는 이것을 연구하는 데 많은 시간을 할애했으며, 사람들이 제공 할 수있는 도움에 정말로 감사 할 것입니다.

  • +1

    SQL Server Express를 가진 이동이 :

    이 간단한 "Hello World」의 튜토리얼을 통해

    일이 어떻게 작동하는지에 대한 느낌을 얻기 위해 Visual Studio에서 (일부 기본 CRUD 코드를 보여줍니다) 일단 설정되면) 네트워크 환경에서 안정적이며 필요한 경우 나중에 "실제"SQL Server 인스턴스에서 사용할 수있는 기술을 배우게됩니다. 뛰어 들다가 설치 및 설정을 배우면 괜찮을 것입니다. –

    +0

    SQL Express는 도메인 외부의 샤드 드라이브에서 작동하지 않으므로 적합하지 않습니다. 현재까지 확인할 수 있습니다. –

    +1

    SQL Server Express는 여러 동시 사용자가있는 경우 안정적으로 설치 될 수있는 ** 적절한 서버 **가 필요합니다. 모든 파일/디렉토리 기반 솔루션은 조만간 슬픔과 부패 문제를 일으킬 것입니다 .... –

    답변

    4

    내 정책 : SQLite (.NET의 경우 하나의 옵션은 System.Data.SQLite)으로 작업을 처리 할 수있는 경우이를 사용하십시오. 표면적으로 이것은 할 수있는 것처럼 들립니다.

    SQLite는 서버가없고 구성이 필요없는 트랜잭션 SQL 데이터베이스 엔진입니다 [...]. SQLite는 전 세계적으로 가장 널리 배포 된 SQL 데이터베이스 엔진입니다. SQLite의 소스 코드는 공개 도메인에 있습니다.

    +2

    [SQLite FAQ] (http://www.sqlite.org/faq.html#q5) : "People Windows에 많은 경험을 가진 사람들은 네트워크 파일의 파일 잠금이 매우 어렵고 신뢰할 수 없다고 말하면서, 그들이 말하는 것이 사실이라면 둘 이상의 Windows 컴퓨터간에 SQLite 데이터베이스를 공유하면 예기치 않은 문제가 발생할 수 있습니다. " 임베디드 데이터베이스는 데이터베이스를 공유해야하는 경우에는 적합하지 않습니다. – millimoose

    +1

    빠른 google은 SQLite로 실제로 발생하는 이런 종류의 문제에 대한 보고서를 생성하지 않으며 FAQ는 다소 오래되어 보입니다. NTFS에 대해 전혀 의논하고있는 것은 확실하지 않습니다. 나는이 사용자가 제안하는 것보다 훨씬 더 무거운 사용 환경을 포함하여 파일 공유 데이터베이스에서 일반적으로 좋은 결과를 얻었습니다. 나는 결코 그런 식으로 SQLite를 사용하지 못했습니다. –

    +0

    SQLite가 필요한 것 같습니다. 그러나 다음과 같은 두 가지 어려움이 있습니다. 1. Visual Studio 2010 구현과 관련된 기사를 읽은 후에도 오류가 계속 발생합니다. 2. "금전"데이터의 처리. 이것은 comercial 앱입니다. 그것은 가격 및 할인, toals 및 GST 항목을 다룹니다. SQLite가 이것을 처리하는 방법은 정수를 사용하고 vale를 센트로 저장한다는 일부 표현에서는 여전히 불분명합니다. 그래서 여전히이 문제를 해결해야합니다. 돈 계산이 시스템의 중심에있는 것처럼 약간의 피드백을 정말로 고맙게 생각합니다. –

    0

    내가 네트워크 (나는 그것을 설치 과정에서 생각)

    0

    mysql을 함께 공유 데이터베이스를 만들 수있는 쉬운 방법이 있다고 생각, MySQL을 시도 ... 당신의 있도록이 드라이버 ODBC 드라이브를 사용합니다. NET 응용 프로그램 mysql odbc driver

    +1

    필자는 타사 데이터베이스가 플랫폼에 대한 경험이 거의없는 사람에게 좋은 제안이 아니라고 주장합니다. 자습서에서는 LINQ-to-SQL과 같은 기능을 소개합니다.이 기능은 SQL Server 이외의 다른 기능을 위해 실제로 사용할 수 없습니다. – millimoose

    0

    SQL Server Compact Edition 여러 클라이언트에게 동일한 시스템에 을 지원하는 MySQL로 연결할 수 있습니다. 여러 컴퓨터에서 데이터베이스에 연결해야하는 경우 Express Edition을 사용해야합니다.

    +0

    여러 대의 컴퓨터 (2-5)에서 데이터를 액세스 할 때이 기능이 작동하지 않습니다. –

    1

    냄비를 조금만 저어 주시면 인터넷에 연결되어 있다면 SQL Azure Database에 소용돌이가 생길 수 있습니다.

    서버가 필요하지 않습니다. 여러 연결이 문제가되지 않습니다. 확장 성; 유지할 수있는; 나중에 마음이 바뀌면 로컬 데이터베이스와 동기화하십시오. MS는 귀하의 조사 목적에 아마도 맞을 90 일 평가판을 운영하고 있습니다.

    다운 사이드는 다른 곳에서도 잘 설명되어 있지만 주로 인터넷 중단으로 인해 앱이 오프라인으로 렌더링됩니다.

    업그레이드를 신속하게 실행하려는 경우 실제로는 좋지 않은 옵션입니다.

    +0

    실제로 +1 좋은 옵션! "서버 실행"작업을 전문적인 데이터 센터에 맡기고 자신의 비즈니스 로직에 집중하십시오! –

    0

    여기에서 논의되는 일반적인 Releationl Databases가 아닌 Document Database 사용을 고려하셨습니까?

    .Net 공간에서 매우 우호적 인 사람은 RavendDB입니다. 그것은 무료입니다, 그것은 사용하기 쉽고 (- http://ravendb.net/tutorials/hello-world

    관련 문제