正确的方法来处理数据库请求

时间:2018-11-02 12:51:39

标签: asp.net sql-server database

我正在尝试制作一个简单的测试战斗游戏,用户可以互相竞争。当用户单击开始按钮时,它首先检查 is_available 表上是否有可用用户,然后删除该行并开始游戏。如果不是,则将用户数据放在行上。 (仅会有一行可用)我的问题是,当同时有很多请求时,此逻辑是否有效?谢谢

2 个答案:

答案 0 :(得分:2)

您应该在Google上搜索Queue System

        struct BankCustomer
        {
            internal string name;
            internal string bankingActivity;
            internal int accountNumber;
            internal float amount;
        }
        enum BankingActivity
        { deposit, withdrawl, transferFunds }
        Queue localBankQueue = new Queue();
        private BankCustomer localBankCustomer;

        localBankCustomer.name = "J P Morgan";
    localBankCustomer.bankingActivity = BankingActivity.deposit.ToString();
    localBankCustomer.accountNumber = 335445;
    localBankCustomer.amount = 5600.00F;

//call this on click
localBankQueue.Enqueue(localBankCustomer);

查看此链接:https://www.codeproject.com/Articles/16838/The-Use-of-Queues-in-C

答案 1 :(得分:2)

而不是删除;您可以添加时间方面,并使用GMT / UTC时间中早于6个小时的记录清除表。您想走那条路,因为您必须检查美国时区的夏令时,而不会使用UTC时间。从技术角度来看,DELETES会将日志记录保持为跨日志记录;因此,即使您的表中没有行或数据,您的事务日志也可以从以前的删除操作中获取。