У меня есть таблица users
с учетными записями пользователей (user_id, username,...). Пользователь_ид связан с несколькими другими таблицами - например. таблицу с его последними действиями, информацию о профиле, его продуктах, его интересах и т.д.
Иногда пользователь хочет, чтобы его удаляли, а затем я установил поле "удалено" в 1. Записи в большинстве таблиц должны быть удалены, но записи в 2 таблицах (reports
и messages
) должны сохраните ссылку на пользователя. Причина. Например, партнер по-прежнему хочет видеть имя пользователя, с которым недавно разговаривал. Каков наилучший способ сделать это?
1) В PHP хранятся идентификаторы записей в reports
и messages
, которые должны храниться в массиве. Затем удалите пользователя. Автоматически все таблицы, связанные с users
, удаляют свои записи со ссылкой на удаленную учетную запись. Ссылка в reports
и messages
должна быть: ON UPDATE SET NULL
, поэтому их записи все еще существуют после удаления пользователя. Теперь база данных чиста, затем повторно вставьте пользователя с тем же user_id, где поле "удалено" на 1. Затем обновите данные в массиве до user_id, чтобы ссылка снова была установлена.
2) Удалите ссылки на пользователя в reports
и messages
(поэтому внешних ключей нет).
3)... (есть ли лучший вариант?)
Спасибо!