我即将潜入一个新的移动项目,更具体的移动TCG(交易卡游戏)Deckbuilder应用程序。由于它即将成为我的第一个移动应用程序,我已经做了一些研究并遇到了Phonegap。我已经完成了几个基于节点的网络应用程序,所以它似乎就在我的小巷里。
我开始搜索如何在手机上存储任何数据,并发现有3种可能性:
LocalStorageStore 似乎无从谈起。因此它位于 MemoryStore 和 WebSqlStore 之间。
什么适合我的项目?你有多复杂?
所以我的想法是拥有一个"大"包含所有现有卡片的json文件:
{
id: xx,
name: 'name'
manacost: xx,
attack: xx,
defence: xx,
effects: [
'lorem ipsum',
'lorem ipsum'
],
image: '/img/cards/xx.png'
}
所以为了保存一个套牌,我想我可以选择:
这不会对记忆太沉重吗?再一次,什么数据库系统适合这个?
答案 0 :(得分:3)
您可以使用SQLite保存数据。这是以表格格式保存数据的正确方法,以便您可以使用SQL查询获取所需数据。当您在那时使用大量数据时,有时使用session或localStorage很难处理这些数据。所以我建议你使用SQLite。正如我在下面举例说明的那样,您将了解创建数据库的想法。
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var db = openDatabase('mydatabase', '1.0', 'My DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS USER (id unique, name)');
tx.executeSql('INSERT INTO USER (id, name) VALUES (1, "Ram")');
tx.executeSql('INSERT INTO USER (id, name) VALUES (2, "Amay")');
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM USER WHERE id=?', [1], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++){
var data = "<p><b>" + results.rows.item(i).name + "</b></p>";
document.querySelector('#custName').innerHTML += data;
}
}, null);
});
</script>
</head>
<body>
<div id="custName">USER NAME</div>
</body>
</html>
答案 1 :(得分:2)
最好的SQLite插件就是这个:
https://github.com/litehelpers/Cordova-sqlite-storage
或此插件的特殊版本,可在此处找到:
https://github.com/litehelpers/Cordova-sqlite-storage#other-versions
如果您的应用程序基于JSON,您应该看看PouchDB,它是一个NoSQL数据库,您可以在cordova sqlite插件之上使用: