Каковы наилучшие методы обработки удаления или включения/удаления строк и ссылочных таблиц?
Например, предположим, что у меня очень простое приложение для форума.
У меня есть таблица users, которая содержит мои учетные записи webapp и threads, которые содержат потоки пользователей, и таблица comments, которая содержит комментарии пользователей к потокам.
Теперь скажите, что в момент регистрации я хочу проверить электронную почту пользователя, прежде чем активировать свою учетную запись. Что это лучший способ сделать это? Каковы лучшие практики? Может быть, через представление, которое возвращает только строки с полем is_active=true? Использование 2 разделенных таблиц, таких как pre_users (содержит пользователей, которые еще предстоит проверить) и users (проверенные)?
Аналогично, как бы вы обрабатывали пользователя, который хочет приостановить свою учетную запись? И его темы и комментарии? Добавляете ли вы еще один флаг is_suspended и обновляете представление, чтобы принять этот флаг? И если это не представление, а две отдельные таблицы, как я могу обрабатывать ссылки?
Кроме того, удалите поток. Предположим, что при удалении потока я не хочу, чтобы поток был фактически удален, потому что я не хочу, чтобы пользователи, которые оставляли комментарии, внезапно не видели своих комментариев. Как с этим справиться?
Каковы наилучшие методы для таких проблем?