2011-09-28 81 views
2

我一直在爲我的在線紙牌遊戲(PostgreSQL,Oracle等)尋找不同的數據庫庫,而且,雖然SOCI + pg或Oracle功能更強大,但它們也很難編譯,集成和完成更多比我需要做的。SQLite適合我的遊戲嗎?

很簡單,這些是我的要求: 存儲用戶名,哈希,贏了,輸了,電子郵件。很簡單。

遊戲本身實際上不會經常與數據庫進行通信。當玩家登錄時,我將通過用戶名檢索該行並使用由他們輸入的密碼生成的散列驗證散列來登錄它們。

除此之外,服務器只訪問數據庫添加一個用戶,打一場後記錄贏或輸,或更新個人信息。

鑑於SQLite支持有限的併發性,這應該是罰款我的需要,即使我有100個左右的紙牌遊戲同時運行。

以上反映,對我來說是SQLite的權利或我要認真思考選擇了一個更復雜的解決方案嗎?銘記數據庫並不是我最重要的一點。

感謝

+1

爲什麼不使用MySQL?它沒有併發限制,也沒有與企業級解決方案相關的「頭痛」。此外,它是開源的,如果你變得流行,它可以很好地適應大量的遊戲。 – tafoo85

+0

@ tafoo85 MySQL是否允許我執行SQL語句而不需要安裝額外的軟件,或MySQL是否是一個在本地主機上運行的服務器? – jmasterx

+0

MySQL只能在本地主機上運行和監聽連接(請參閱有關綁定地址和跳過網絡選項的文檔)如果您想進行實驗,您還可以使用libmysqld,它是一個提供MySQL作爲守護程序的C++庫,但這不鼓勵用於通用目的因爲使用權利很複雜。 – johannes

回答

7

隨着許多客戶SQLite是一個完美的結合。不過,我建議你在一個簡單而不是數據庫特定的接口中包裝這個功能,併爲SQLite實現它。一旦得到數百萬客戶端以及併發/性能問題,您可以簡單地引入另一個使用更強大數據庫的實現,而無需更改您的應用程序代碼。