首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

gorm软删除妙用-充值,软删除恢复,soft delete

我设计的逻辑是用户申请充值100元,按传统的设计需要一个数据库表,存储用户的申请,管理员同意后,再写入-充值记录表。...用gorm软删除就避免了多一个表,用户申请充值记录,直接写入-充值记录表,用事务,用事务。紧接着软删除。用事务,如果软删除失败,可回滚。...管理员同意后,修改软删除,即恢复,并修改数值,比如奖励1元就是101元啦。...用户充值申请,增加一条记录,立即软删除 //账户添加一条充值记录 recharge := Recharge{UserID: uid, Amount: amount} if err := tx.Create...= nil { tx.Rollback() return err } return tx.Commit().Error 查询被软删除的记录: // 管理员查询到所有申请 func GetApplyRecharge

1.7K20

django优雅的实现软删除,支持Admin和DRF的软删除

何为软删除 当你想对数据进行删除的时候,如果使用物理删除,那么数据真的消失了。使用软删除,可以让数据保留,但是不会被真的删除。只是在字段上设置了一个值,表示数据已经被删除。...同样的,DRF对外操作的其他接口,如查询,修改操作,就不允许找到已经软删除的数据。 自带的Admin 既然是超级管理后台,那么就允许操作任何数据,包括已经软删除的,而不是列表找不到软删除的数据。...后台执行删除操作的时候,实际上是对数据进行软删除。...简而言之: drf找不到删除的数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django的模型(Model)中操作数据库的能力...,是软删除。

2.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    centos 删除软链接(centos软路由)

    添加软连接 软连接,为某一个文件在另外一个位置建立一个同步的连接 在此处创建软连接后,访问到此处的软连接,就会定位到软连接指向的位置。...具体用法是:ln -s 源文件 目标文件 会针对源文件创建一个软连接(目标文件),链接到源文件。 别搞反了。前面的源文件,是需要在当前位置能访问到的文件。后面的是目标文件,是新创建出来的链接。...例如 ln -s /home/source_file source_file_link 此时在当前窗口 cd source_file_link,就会到达 /home/source_file 删除软连接...删除时,右边不能加 斜杠 例如上面的那个是 rm source_file_link 注意 服务器重启,软连接可能会丢失,最好每一个软连接都有记录。

    3.4K20

    3分钟短文:Laravel 检查记录是否被软删除

    引言 laravel模型中引入了SoftDeletes这个全局作用域用于将数据库的条目 标记为删除,而实际上并不清除数据,这样可以为后续的数据恢复做铺垫。...{ use SoftDeletes; } 如果数据库表中正好是使用 deleted_at 标记删除日期时间,那么无需手动指定该字段为软删除字段了。...使用了软删除功能后,会在模型的查询方法上,默认追加 where deleted_at is null 那么如果使用了全量查询后,如何判断一个记录是否是已经软删除的呢?laravel提供了这些功能。...trashed()) { continue; } } 或者使用另一个函数判断: method_exists($user, 'trashed') 如果有 trashed 方法,则是删除的模型记录...写在最后 本文通过对laravel模型中软删除的源码分析, 为大家展示了引入软删除功能,并自定义软删除标记字段的方法。通过模型提供的方法,进而判断记录是否已软删除。

    1.5K30

    Laravel 软删除存在的问题

    对应已经存在的表,有些表存在软删除,有些表不存在软删除字段,如果要应用软删除,只能在需要应用的model中一个个添加trait 如果重写Illuminate\Database\Eloquent\SoftDeletestrait...,如果类常量DELETED_AT为null,则不执行相应的软删除操作 4、join操作,只会在对当前模型添加软删除查询条件 5、在belonsToMany关联关系中,如果关联表,中间表,被关联表都有软删除字段...被关联表是一个类对象,如果应用了软删除,则会自动附加上软删除条件 6、在hasManyThrough关联关系中,如果关联表,中间表,被关联表都有软删除字段,查询关联关系,会对中间表应用删除条件。...但是中间表的软删除不是通过scope实现的,关联关系对象在创建的时候就已经把中间表的软删除条件附加上去了,因此,即使指定了withTrashed,也会有中间表的软删除查询条件。...如果要修改,也可以,通过scope的方式附加软删除条件,这样就能保证软删除的查询条件是在真正查询的时候才附加上去。

    2.3K20

    sql删除重复记录

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select...people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录...,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleName in (select peopleName...(a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 4、删除表中多余的重复记录...消除一个字段的右边的第一位: update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村' 8.假删除表中多余的重复记录

    2.2K30

    如何在Linux中删除软链接

    符号链接(也称为软链接或符号链接)在 Linux 中是一种特殊类型的文件,可用作另一个文件的快捷方式。 你可以使用 ln 命令创建软链接。但是怎么删除呢?...rm删除 > rumenz_soft_link.sh > ls -l 删除软链接不会删除它链接到的原始文件。...删除多个链接 你可以使用 rm 命令一次删除多个符号链接: rm symlink1 symlink2 symlink3 使用取消链接命令删除软链接 删除软链接的另一种方法是使用取消链接命令。...> unlink rumenz_soft_link.sh > ls -l 删除指向目录的软链接 你可以创建指向文件和目录的软链接。...强制删除指向目录的链接将删除实际目录的内容 删除硬链接 与软链接不同,硬链接与原始文件的内容是一样的。

    13.3K20

    什么时候我们需要软删除?

    阅读完本文你将会学会 什么是软删除? 如何考量是否使用软删除 如何在Spring里实现软删除 1. 前言 我们在开发程序的过程中,会遇到一个常见的需求——删除表中的数据。...但是有时候,业务需求要求不能永久删除数据库中的数据。比如一些敏感信息,我们需要留着以方便做历史追踪。 这个时候,我们便会用到软删除。 那么什么是软删除?什么时候才能使用它?...这种删除方式并不是真正地从数据库中把记录删除,而是通过特定的标记方式在查询的时候将此记录过滤掉。虽然数据在界面上已经看不见,但是数据库还是存在的。...当然软删除也有弊端,不利于数据库性能(主要针对关系型数据库)的提升,可能会产生大量的冗余数据。 如果我们不需要,请不要画蛇添足,当我们需要的时候,请考虑业务的数据量和读写方式。...在下面这个例子中,我们创建了一条记录,执行了一个软删除,查找出所有的实体类。

    2.1K30

    Laravel 如何实现数据的软删除

    软删除功能需要实现的功能有以下几点: 1.模型执行删除操作,只标记删除,不执行真正的数据删除 2.查询的时候自动过滤已经标记为删除的数据 3.可以设置是否查询已删除的数据,可以设置只查询已删除的数据 4...Laravel中软删除数据的过滤也是使用这种方式实现的。...,如果有软删除会过滤掉中间模型被删除的数据。...以上就是Laravel实现软删除的大概逻辑。这里有一个细节,Laravel中软删除的标记是一个时间格式的字段,默认delete_at。通过是否为null判断数据是否删除。...但是有的时候,项目中会使用一个整形的字段标记数据是否删除。在这样的场景下,需要对Laravel的软删除进行修改才能够实现。

    2.4K10
    领券