У меня есть приложение с таблицей с именем active_clients
, которая имеет пять столбцов: user_id
, is_active
, created_at
, updated_at
и deleted_at
.
Я добавляю и удаляю строки 1000 раз в день. Но то, что я обнаружил, когда я использовал db.Delete(&ourRow)
в строке - это на самом деле не удаляло бы это. Было бы просто установить столбец deleted_at
на текущее время. Сама строка будет зависать, заставляя наши таблицы увеличиваться в размере в течение дня (так как я добавил / удалил много строк).
Это поведение, описанное в документации здесь . Когда вы используете deleted_at
, Delete
будет мягким удалением. Я хотел бы сохранить эту функциональность мягкого удаления в моем приложении.
Это подводит меня к моему основному вопросу:
Каков наилучший способ использовать мягкое удаление и избегать таблицы размера ? Моя основная идея состоит в том, чтобы создать задание, которое будет автоматически удалять столбцы, для которых установлен столбец deleted_at
, который не является null
один раз в 30 минут. Это серьезный подход или есть что-то более стандартное, что я могу сделать?