Пользователи нашего приложения участвуют в форумах и создают различные сущности. В схеме вы помечаете ссылки из этих таблиц обратно в таблицу User как ссылки на внешние ключи. Мы не можем удалить эту запись пользователя из базы данных, так как она имеет несколько ограничений внешнего ключа, которые можно удалить.
Один из способов адресации - сделать поле «Пользователь» в других таблицах обнуляемым, чтобы можно было пометить эти значения как обнуляемые перед удалением пользовательской записи. Удаление информации из других таблиц вообще не вариант, так как это приведет к несогласованности (например, удаление сообщения на форуме, принадлежащего пользователю, вызовет проблему).
Другой вариант состоял в том, чтобы просто пометить запись пользователя как съемную и не делать ее доступной как часть пользовательских запросов. Теоретически это означает, что ни один пользователь не может быть удален из системы, и это может быть проблемой, если кто-то захочет использовать такой же логин, что и удаленный пользователь.
Хотите знать, как другие решают эту проблему?