时间维护与软删除
在实际应用当中,数据表中通常会有三个时间字段:创建时间、更新时间、删除时间。GoFrame支持这三个时间字段的自动填充,这三个字段支持的类型为DATE
、DATETIME
、TIMESTAMP
。
- 创建时间:默认为
created_at
- 更新时间:默认为
updated_at
- 删除时间:默认为
deleted_at
,数据软删除时使用
如果不想使用默认名称,需要自行修改,可以在配置文件里数据库配置时修改,方式如下:
database:
....
createdAt: "create_time"
updatedAt: "update_time"
deletedAt: "delete_time"
软删除
软删除并不是真正从数据库中把记录删除,而是通过特定的标记在查询时过滤掉这些数据,使这些数据在页面上看不到,但实际上在数据库中仍然存在。通常用于一些需要历史追踪而不能真正删除的数据。
当数据表中有deleted_at
字段时,使用Delete
方法时不会物理删除数据,只是更新deleted_at
字段的值。查询数据时,会自动加上WHERE `deleted_at` IS NULL这一条件,过滤掉已被“删除”的数据。
如果需要查询所有数据,需要使用Unscoped
方法
ls, _ := md.Unscoped().All()