2012-06-04 6 views
0

조직 용 응용 프로그램을 작성했으며 응용 프로그램을 Samba를 사용하여 실행할 수있게하여 완벽하게 작동했습니다. 이제 그들은 인터넷을 통해 일하기를 원합니다. 문제는 내가이 응용 프로그램을 Sqlite로 작성했기 때문에 현재 작동 중임을 의미합니다.서버/클라이언트 응용 프로그램에 대한 포트 Sqlite 응용 프로그램

exe와 sqlite dll 및 sqlite 데이터베이스가 samba 서버에 있고 해당 컴퓨터의 Windows에 네트워크 드라이브가 연결되어 있습니다. pc 그것을 실행합니다. 그래서 모든 PC가 sqlite를 통해 sqlite 데이터베이스에 쓰고 있음을 의미합니다.

나는 인터넷을 통해 그것을 시도했지만, sqlite는 로컬 데이터베이스이고 매우 느린 것처럼 생각한다. 핑이 50ms 미만이라 할지라도.

모든 것을 처리하고 sqlite 데이터베이스에 모두 쓰는 TCP 서버를 만들 수는 있지만 이미 게으른 저를위한 최선의 옵션이 아니기 때문에 프로젝트에 약 20,000 코드 줄을 작성했습니다. 나는 querieng에 대한 내 클라이언트에서 단 하나의 sqlite 클래스를 사용했다. 그래서 sqlite가 mysql과 거의 같은 문법을 가졌기 때문에 sqlite 데이터베이스 어댑터를 mysql 데이터베이스 어댑터로 대체하면 많은 일을하지 않고도 작동 할 수 있다고 생각했다.

아니면 더 좋은 아이디어가 있습니까?

+0

Oracle, SQL Server, MySQL? 기존 클라이언트 서버 설정 및 예산에 대한 자세한 내용은이 "조직"을 확인하십시오. – crashmstr

+0

예산은 실제로 거기에서 관련이 없다, theyll은 리눅스 서버를 구입한다 – Tearsdontfalls

+1

당신은 당신의 코드를 가장 잘 판단한다. 당신이 말한 바로는, 그렇습니다. MySql을 사용하는 것이 좋습니다. – Steve

답변

1

SqLite는 동시 트랜잭션을 위해 설계되지 않았습니다 (완료 될 수 있지만 다른 포스트입니다). 인터넷을 통해 사용할 수 있다면 가장 좋은 방법은 무료 데이터베이스 (mySql, SQL Server Express, Oracle Express ... 등) 중 하나로 데이터베이스를 마이그레이션하는 것입니다.

+0

그리고 mysql 데이터베이스에 직접 연결하기 위해 클라이언트를 사용해야합니다. 즉, AES 키를 전송하기 위해 RSA 전에 사용했던 것과 같은 보안 성이있는 mysql 데이터베이스에 연결하는 것입니다. 그 (서버에 신용 카드 데이터도 있습니다)? – Tearsdontfalls

+0

좋아, 내가 대답을 찾았는데 .net libary와 .net libary도 MySQL 자체로 작성되었으므로 postgre sql과 같이 수작업이 아니므로 mysql을 잘못 사용했다. – Tearsdontfalls

+0

모든 정보는 전송 된 정보의 성격에 따라 다릅니다. 데이터가 민감한 경우 데이터 주변의 보안을 고려해야합니다. 이는 암호화와 같이 간단 할 수도 있고 웹 서버 및 응용 프로그램에 데이터베이스에서 웹 서버 및 프록시 정보를 추가 할 수도 있습니다. –

1

자체 서명 된 SSL 인증서로 구성된 PostgreSQL은 적합한 후보자가되어야한다. SQLite3에서 PostgreSQL으로 SQL 덤프를 이식하는 것은 대부분의 경우 간단합니다.

+0

나쁘지는 않지만 그러한 SSL 연결을 지원하는 .NET 공급자를 알고 있습니까? – Tearsdontfalls

+1

IIRC Npgsql은 SSL을 지원합니다. 하지만 비슷한 응용 프로그램에서 Qt/C++을 사용하고 있기 때문에 사용하지 않았습니다. – dschulz

+0

여기에 흥미로운 블로그 게시물이 있습니다 : [SSL 클라이언트 인증서를 Npgsql과 함께 사용] (http://fxjr.blogspot.com/2010/04/using-ssl-client-certificates-with.html) – dschulz

관련 문제