javascript - 手动设置和检查 id 字段

标签 javascript mysql cordova phonegap-plugins

我正在开发一个 phonegap 应用程序,它在某个 super 用户下添加了 20 个用户。由于一个 super 用户下只有20个id可用,我在id字段中使用了自动递增。现在我得到以下场景 -

1) User1 输入他的 id 为 1

2) 用户 1 然后将他的 ID 编辑为 4,因为他喜欢这个数字

3) User2注册,默认人数为5

4) User2 修改他的 id 为 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);
            });

最佳答案

ID 应该是唯一的。这意味着如果用户更改了他的 ID,则需要重新排列 20 个 ID,从而更改其他用户的首选 ID。可能的出路:

1 不要用autoincrement,id自己记账。向用户提供可用 ID 的选择,并让他们从此列表中进行选择。

2 使用帮助表(或使用用户表中的字段)将用户首选 ID 映射到自动生成的 ID。

关于javascript - 手动设置和检查 id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310861/

相关文章:

java.sql.SQLException : You can't specify target table 'user_details' for update in FROM clause 异常

angularjs - 在 AngularJS 中使用蓝牙

javascript - 如何在 MVC 3 中对 PartialView 加载执行 JavaScript 函数

javascript - Twitter 关注按钮不会在 Google Chrome 中呈现

javascript - 使用JS在td上一次显示多张图片

javascript - 如何在所选图像上打勾

php - SQLSTATE[HY093] :Invalid parameter number:parameter was not defined

MySQL多重计数

javascript - 使用设备上的 android 后退按钮返回到 Framework7 应用程序中的主视图?

android - 如何处理 Phonegap iOS/Android 项目并对其进行正确的版本控制?