将对象的Id设置为DB中的下一个可用行?

时间:2017-06-13 20:29:43

标签: javascript c# ajax database orm

这是我的代码:

("document").ready(function() {

    $('.register').click(function() {
        var user_name = $("#username").val();
        $.getJSON("/api/Users/GetByUserName/" + user_name)
            .done(function() {
                alert("user name already exist!");
            })
            .fail(function () {
                var usersUri = "/api/Users";
                self.addUser = function () {
                    var user = {
                        Id : ---------???
                        UserName: $("#username").val(),
                        Email: $("#email").val(),
                        Password: $("#password").val(),
                        Wins: 0
                        loses: 0
                    };
                    $.post(usersUri, user).done(function (item) {
                        self.books.push(item);
                    });
                }

            });
    });
});

我有以下字段的Db:“id,userName,email,password,wins,loses”。 现在我希望新用户的ID是下一个可用行的数字。 什么是最好的方法? 谢谢!

2 个答案:

答案 0 :(得分:1)

在客户端分配Id并不是一件好事。客户不应该关心Id。服务器应分配第一个可用记录Id(可以在带有身份主键的DB中自动完成),然后,如果需要,可以将此Id发送回已插入对象的客户端。

答案 1 :(得分:1)

通常,您不会从客户端App分配Id,而是从服务器分配。

因此,在您的POST API代码中,您可以决定所需的ID类型,这可以是自动增量或GUID或其他格式,具体取决于您的数据库。

如果您想要下一个可用的整数,首先让您在桌面上的用户自动增加:https://dba.stackexchange.com/questions/128433/add-autoincrement-to-existing-pk

之后,如果使用ORM或SQL命令,则无需在创建新记录时指定Id。