Удалять ли ненужные записи в базе данных или оставлять?
Есть доска объявлений и постоянное движение записей в базе данных - удаляются или скрываются объявления.
Суть вопроса в том, как правильнее делать :
1. удалять объявления (404 или 410 ошибка)
2. или сохранять объявление, отдавая 200 код , но при этом скрывать контактные данные и писать что-то типа "Объявление не активно" ?
Если второе, то как правильно это сделать, учитывая , что база будет постоянно расти, а индекс на enum 'delete', 'active' вряд ли поможет ?
постоянное движение записей в базе данных - удаляются или скрываются объявления.
Это означает наличие в таблице объявлений поля статуса. Соответственно в коде в зависимости от полученного для объявления статуса следует отображать либо само объявление, либо страницу-заглушку с указанием причины не-показа.
как правильнее делать
Удаление - вообще не вариант. Вполне достаточно партиционирования по статусу, чтобы записи со статусами удалённого/неактивного/скрытого вроде и были, но в то же время не включались в обработку и не влияли на производительность.
У объявления могут быть фотографии, файлы, комментарии, статистика посещений и пр.
Что в таком случае делать со связями, если переносить данные в другую таблицу?
А смысл их оставлять? Они ведь попросту ненужный мусор. Но в плане реализации можно сделать срок действия для восстановления истёкшего объявления 7 дней. Если оно не будет восстановлено, то удаляется из базы данных.
2, в смысле оставляйте, как и для любого сайта - ссылочная масса лишней не будет.
Если второе, то как правильно это сделать, учитывая , что база будет постоянно расти, а индекс на enum 'delete', 'active' вряд ли поможет ?
Каким образом оно вообще будет как-то влиять на выборку? Оно же все равно у вас в селекте присутствует, в чем разница? Прямой запрос конкретного объявления этот индекс не использует, а селект списка все равно его использует, разницы независимо от того сколько у вас там записей не будет.
Роман Юрьевич Ипатьев, При чем тут ненависть пользователей? Это даже в перспективе полезная фича - видеть какие были объявления до текущего момента, это нормально. Тот же ибэй имеет историю лотов, да и другие сервисы хранят эти данные. Это иногда полезно хотя бы в плане того что такой товар был и стоил столько-то, если сейчас ничего нет, или продавца найти, вдруг он просто перестал объявление постить, а товар еще есть. Короче я вижу больше плюсов, чем минусов...