«Named foo» в выходных данных str
просто означает, что ваш объект является вектором foo
с именами, прикрепленными к нему.
x <- c(1,2,3)
names(x) <- letters[1:3]
str(x)
# Named num [1:3] 1 2 3
# - attr(*, "names")= chr [1:3] "a" "b" "c"
y <- c("bar", "baz")
names(y) <- letters[1:2]
str(y)
# Named chr [1:2] "bar" "baz"
# - attr(*, "names")= chr [1:2] "a" "b"
Добавить уникальное ограничение для полей (имя пользователя, удалено) Измените тип поля для «удалено» на INTEGER.
Во время операции удаления (это можно сделать в триггере или в части кода, где вам действительно нужно удалить пользователя) скопируйте значение поля id в удаленное поле.
Этот подход позволяет:
Поле «Удалено» не может иметь только 2 значения, потому что следующее сценарий не будет работать:
Мое практическое решение для мягкого - удаляет, архивирует путем составления новой таблицы со следующими столбцами: original_id
, table_name
, payload
, (и дополнительный первичный ключ 'идентификатор).
то, Где original_id
исходный идентификатор удаленной записи, table_name
, является именем таблицы удаленной записи ("user"
в Вашем случае), payload
строка JSON-stringified из всех столбцов удаленной записи.
я также предлагаю делать индекс на столбце original_id
для последних данных retrievement.
этим способом заархивировать данные. У Вас будут эти преимущества
обсуждения здесь объяснение, почему мягкое удаление не является хорошей идеей на практике. Мягкий - удаляют, представляет некоторые потенциальные проблемы в будущем, такие как подсчет записей...
Просто сохраните уникальный индекс или ограничение для имени пользователя
. Вы не хотите, чтобы новые пользователи могли использовать удаленное имя, так как не только может возникнуть общая путаница в отношении личности, но и если вы все еще показываете старые сообщения от удаленного пользователя, то они будут ошибочно считаться опубликованными новый пользователь с таким же именем.
Когда новый пользователь регистрируется, вы обычно проверяете, используется ли имя перед завершением регистрации, поэтому здесь не должно быть конфликта.
.