Слышал, что в БД при удалении записи лучше ее не удалять, а ставить флаг isActive = 0, к примеру, и не учитывать в выборках из-за фрагментации диска (?).
Сейчас пишу логику для лайков у постов и задался вопросом, а как лучше сделать:
1. Самый простой вариант - удалять лайки из бд при анлайке и инсертить при лайке
2. При анлайке у записи ставить флаг isActive = 0. В таком случае при лайке этого же поста сценария два: заново инсертить лайк (в таком случае если пользовать кучу раз нажал "лайк"-"анлайк", то в таблице будет много лишних записей. Второй вариант - искать, есть ли в таблице лайк на пост с isActive = 0 и просто ставить isActive = 1. Если записи нет, то инсеритить. Но тогда логика и количество запросов к бд вырастает (тут мне кажется просто велосипед изобрел).
Это пустые страхи.
Никакой "фрагментации" "диска"в таблице из двух числовых полей (то есть с фиксированным размером записи) не будет. БД прекрасно сама повторно использует ячейки удалённых записей.
Поэтому, как правильно сказал Akina, мягкое удаление для лайков делать бессмысленно