Удалять ли ненужные записи в базе данных или оставлять?
Я бы поступил следующим образом:
1. создать ёще одну таблицу с идентичной структурой
2. при удалении переносить из основной таблицы в архив

Преимущества:
1. основная таблица остается компактной
2. при необходимости можно всегда восстановить данные
А смысл их оставлять? Они ведь попросту ненужный мусор. Но в плане реализации можно сделать срок действия для восстановления истёкшего объявления 7 дней. Если оно не будет восстановлено, то удаляется из базы данных.