草庐IT

PHP & MySQL : Do I store the Balance column or generate it dynamically whenever the application needs it?

我已经拥有的:在我的应用程序中,我有Credit和Debit列。对于表中的两列,我使用列类型作为Decimal8,2,默认值为0.00。当用户记入贷方时,例如50美元,贷方列的值为50.00,借方列的值为0.00。我想要实现的目标:现在我还想在第三列中显示一笔交易的余额,该列与前端的“借方”列相邻。那么我是否创建一个名为Balance的新列,列类型为Decimal8,2,默认值为0.00,并在我的代码中将Balance填充为(credit-debit)?或者我是否在每次用户访问此页面时动态计算余额值?哪种方法最好,为什么?最近的交易首先显示。这是我希望我的前端如何工作/看起来如何的示例

php - 征信系统如何防范欺诈?

假设我们的accounts表有一个名为balance的列,每笔交易都记录在transactions表中。当然,我们应该在进行任何交易以销售产品之前确认有足够的资金。因此,出于性能目的,我们应该检查用户的balance列,扣除成功销售的金额,并更新他的balance。但是,如果用户异步购买了2种产品,那会不会造成欺诈?我写了一个脚本,可以从一个帐户中扣除资金并将其克隆到另一个文件中。我同时执行了这两个脚本,结果令人惊讶。扣除.phpprepare('SELECTbalanceFROMaccountsWHEREid=?');$sql->execute(array(1));while($u=

mysql - 如何避免记录付款和运行余额的 Rails 模型中的竞争条件?

我有一个简单的模型,Payments,它有两个字段amount和running_balance。当一个新的payment记录被创建时,我们寻找它之前支付的running_balance,比如last_running_balance并保存last_running_balance+amount作为当前支付的running_balance。以下是我们实现Payments模型的三个失败尝试。为简单起见,假设之前的付款始终存在,并且id随着付款的创建而增加。尝试1:classPayments尝试2:classPayments尝试3:classPayments这些实现可能会导致系统出现竞争条件,因

MySQL 非负 INT 列

我想做以下查询:UPDATE`users`SETbalance=(balance-10)WHEREid=1但如果余额将变为负数,我希望返回一个错误。关于这是否可能的任何想法? 最佳答案 如果你这样做UPDATE`users`SETbalance=(balance-10)WHEREid=1andbalance>=10您应该能够检测到一行未被修改。请注意,虽然另一个答案建议使用unsignedint列,但这可能行不通:创建测试表createtablefoo(valintunsigneddefault'0');insertintofoo(

mysql - RS.GetValue(RS.GetOrdinal ("balance")) 产生意外值

我正在使用VisualStudio2005和mysql4.0,我有一个表,其中包含一个字段(十进制16,4),用于存储发票金额和另一个表,其中包含对该发票的付款(这些字段也是十进制的)16,4)我读取数据并获得一些包含4列的记录(发票、金额、付款、余额)invoice454,Amount8125.68payments:8125.68balance:0付款来自sum(payments)报表。相关支付的记录数据为:8122.16、0.0900、0.0050、1.6900、1.7350总数是8125.68我这样读取数据:DimConnAsNewMySqlConnection(myConnSt

php - 在sql中添加数字

我有一个具有列平衡的mysql数据库。该表用于存储用户账户余额的数据,那么如何在mysql语句中添加数字呢?这是我目前的情况$sql_data="UPDATE`database1`.`users`SET(`balance`)='(whattoputhere?)'WHERE('".$mysqlid."')";所以我必须a)使用mysql选择查询检索当前余额吗?和b)我用什么来将整数5添加到列余额中,mysql行是double(16,2) 最佳答案 $sql_data="UPDATE`database1`.`users`SET`bala

MySql - 按月名排序

我正在尝试按月份名称对mysql查询进行排序,例如:January--5February--2March--5andsoon这是我的查询,但不是排序:SELECTleave_balance.balance,MonthName(leave_balance.date_added)ASmonthFROMleave_balanceWHEREleave_balance.staff_id_staff=$iidGROUPBYmonth,leave_balance.leave_type_id_leave_typeHAVINGleave_balance.leave_type_id_leave_type=

python - Odoo - 将空值写入数字列

在Odoo/OpenERP7中,我有一个名为balance的可为空的数字列'balance':fields.float(string='Balance',digits=(20,2))我正在尝试使用Python代码将None更新到字段中self.write(cr,uid,[1],{'balance':None})但是,令人沮丧的是,Python将None视为与0相同,所以我最终在数据库中得到0而不是预期的Null。关于如何使用写入命令存储空值的任何指示? 最佳答案 你不能:OdooORM不支持空数值。如果你真的需要区分“空”值和零值,

php - mysql查询需要优化

我有一个查询结果如下id|productid|userid|coinsid1|2|2|53|2|2|64|2|3|75|2|4|86|2|3|9这是特定productid的结果。现在我必须通过向上面结果中的所有用户添加$1来更新usertable中的余额,但是如果userid是两次,我需要向余额中添加$1两次该特定用户的。所以在上面的例子中,$1两次添加到userid=2余额和userid=3余额中。简单的方法是为每个不同的userid计算记录,并在foreach循环中运行与我们有用户一样多的查询。但我正在寻找一些优化方式。请提出任何建议。谢谢 最佳答案

mysql - 用mysql计算余额

我有一个包含以下数据的表:IDInOut1100.000.00210.000.0030.0070.0045.000.0050.0060.00620.000.00现在我需要一个能给我以下结果的查询:IDInOutBalance1100.000.00100.00210.000.00110.0030.0070.0040.0045.000.0045.0050.0060.00-15.00620.000.005.00是否可以在不使用触发器或存储过程的情况下通过一个查询来完成此操作? 最佳答案 简短的回答,是的更长的答案,你可以使用一个变量来计算