2011-09-28 3 views
2

온라인 카드 게임 (PostgreSQL, Oracle 등)을위한 다른 데이터베이스 라이브러리를 조사해 왔으며 SOCI + pg 또는 Oracle은 훨씬 강력하지만 컴파일, 통합 및 훨씬 더 많은 작업을 수행하기가 까다 롭습니다. 내가해야 할 일보다.내 게임에 SQLite가 맞습니까?

간단히 말해서 내 요구 사항입니다. 사용자 이름, 해시, 승수, 패배, 이메일을 저장하십시오. 아주 간단합니다.

게임 자체는 실제로 자주 데이터베이스와 통신하지 않습니다. 플레이어가 로그인하면 사용자 이름별로 행을 검색하고 입력 한 비밀번호로 생성 된 해시로 해시를 확인하여 로그인합니다.

그 외의 경우 서버는 데이터베이스를 액세스하여 사용자를 추가하거나 라운드를 한 후 승패를 기록하거나 개인 정보를 업데이트합니다.

SQLite가 제한된 동시성을 지원한다고 가정 할 때, 100 개 정도의 카드 게임이 동시에 실행되는 경우에도 내 요구 사항은 만족 스럽습니다.

위의 내용을 반영하여 SQLite를 올바르게 사용하고 있습니까? 아니면 더 복잡한 솔루션을 선택하는 것을 진지하게 고려해야합니까? 데이터베이스가 내 가장 강한 요점이 아니라는 것을 명심하십시오.

고마워요.

+1

왜 MySQL을 사용하지 않습니까? 여기에는 동시성 제한이없고 기업 수준의 솔루션과 관련된 "두통"이 없습니다. 또한 오픈 소스이기 때문에 대중화되면 많은 수의 게임에 맞게 확장 할 수 있습니다. – tafoo85

+0

@ tafoo85 MySQL은 추가 소프트웨어를 설치할 필요없이 단순히 SQL 문을 실행할 수 있도록 허용합니까? 아니면 MySQL은 localhost에서 실행되는 서버입니까? – jmasterx

+0

MySQL을 데몬으로 제공하는 C++ 라이브러리 인 libmysqld를 사용해 볼 수도 있지만 MySQL은 로컬 호스트에서만 연결을 수신 대기합니다 (bind-address 및 skip-networking 옵션에 대한 문서 참조). 일반적인 용도로는 권장하지 않습니다. 사용법이 복잡하기 때문에 사용법이 옳습니다. – johannes

답변

7

그 많은 클라이언트 SQLite는 완벽한 선택입니다. 그러나 간단하고 데이터베이스가 아닌 특정 인터페이스에서이 기능을 마무리하고 SQLite 용으로 구현하는 것이 좋습니다. 수백만 명의 클라이언트를 동시성/성능 문제와 함께 사용하게되면 응용 프로그램 코드를 많이 변경하지 않고 더 강력한 데이터베이스를 사용하는 다른 구현을 구현할 수 있습니다.

관련 문제