我正在开发一个在某个超级用户下添加20个用户的phonegap应用程序。由于在一个超级用户下只有20个id可用,我在id字段中使用了自动增量。现在我给出了以下场景 -
1)User1输入他的id为1
2)User1然后将他的id编辑为4,因为他喜欢这个数字
3)User2注册,默认编号为5
4)User2将其身份编辑为20
这就是我的问题所在,如何重新检查并分配已分配的数字,然后再进行编辑。如您所见,在上面的场景中,1-4和4-20的数字将不被使用。
以下是我到目前为止所做的代码 -
var db = window.sqlitePlugin.openDatabase("Database", "1.0", "Application", -1);
var Id = window.localStorage["user_id"];
var Number = '';
db.transaction(function(txaf) {
db.transaction(function(tx) {
//store data for local storage
//var Number = GenerateRandom();
//var Number;
tx.executeSql(
"SELECT id,number FROM range WHERE superuser_id = '" +
SuperuserId + "' ORDER BY id ASC Limit 1 ;", [],
function(tx, result) {
//if user id found then just update data for that user
//alert(result.rows.item(0).id);
Number = result.rows.item(0).number;
var UpdateId = result.rows.item(0).id;
var Data = JSON.parse(window.localStorage[
"data"]);
Data.number = Number;
var DataJson = JSON.stringify(Data);
window.localStorage["data"] = DataJson;
tx.executeSql(
"UPDATE range SET is_used = '1' WHERE id = '" +
UpdateId + "'", '', function(tx,
resUpdate) {}, function(e) {
//console.log("ERROR at update: " + e.message);
});
});
}, function(e) {
//console.log("ERROR: " + e.message);
});
答案 0 :(得分:0)
id应该是唯一的。这意味着如果用户更改其ID,您需要重新输入20个ID,从而更改其他用户首选ID。可能的出路:
1不要使用自动增量,自己进行身份簿记。向用户提供可用ID选项,并让他们从此列表中进行选择。
2使用帮助程序表(或使用用户表中的字段)将用户首选标识映射到自动生成的标识。