我正在使用MySQL。我有3个字段的表:id,price,count。我需要编写小型计费系统,我遇到了一些问题。示例:
答案 0 :(得分:0)
一种方法可能是,只需创建一个额外的列STATUS。
一旦用户输入,它可以是1状态(意味着刚输入) 批准 - 2 改变了 - 3
虽然1和2可以在同一行,但更改的可以是单独的行,而检索您可以检索具有max(status)的记录,这样您每个项目只能获得一条记录,即使它们可能有多个ID在数据库中。
同样的状态逻辑可以用于其他方式来实现同样的目的。
答案 1 :(得分:0)
最简单的方法可能是添加一个额外的列,但这取决于您的情况。
如果您不需要存储原始价格/数量,那么添加一个列很容易,并且可以这样工作:
| ID | Price | Num | Verified |
+--------+-----------+---------+--------------+
| 1 | 110 | 1 | 1 |
| 2 | 999 | 2 | 0 |
验证时,您可以UPDATE
该行,在保存时将Verified
更改为1.然后,任何列Verified = 0
的内容都需要进行审核并验证Verified = 1
。
所以,说ID 2应该有3的Num。你可以使用Admin编辑:
UPDATE myTable SET Num=3 WHERE ID=2
然后当他们点击“保存”
UPDATE myTable SET Verified=1 WHERE ID=2
您也可以同时执行这两项操作
UPDATE myTable SET Num=3, Verified=1 WHERE ID=2
如果要保存旧值,可以轻松创建包含时间戳的存档表。然后在运行更新之前将值插入到该表中。
注意: Count
是一个错误的列名,因为它是SQL中的关键字