saeed rajabi Ответов: 1

Правда ли, что у вас есть нулевая информация?


привет,
я хочу разработать торговую систему,
в моей системе есть какой-то пользователь - > ( admin (*) - admin(level2) - продавец - покупатель(зарегистрированный) - покупатель(не зарегистрированный) ).
у меня есть два стола для регистрации :

1-пользователь (UserID(pk) - роль-имя пользователя-пароль)

2 - пользователи (UserInfoID(ПК) - тел - имя - имени - адрес - город - имя пользователя(ФК))

я хочу установить имя пользователя и пароль nullable, потому что я хочу зарегистрировать некоторую информацию о покупателях без какого-либо имени пользователя и пароля (покупатель, который не зарегистрировался).
я не даю разрешения другому пользователю на вставку нулевого имени пользователя и пароля.
я проверяю, вставили ли они имя пользователя и пароль, чтобы они могли зарегистрироваться.
но поля имени пользователя и пароля могут быть обнулены.
правда ли, что некоторые строки имеют какое-либо имя пользователя и пароль, но для некоторых строк они есть?

Что я уже пробовал:

все поля обязательны, кроме полей имени пользователя и пароля, но пользователи, которые хотят зарегистрироваться, должны вставить их(я проверяю, не вставили ли они эти поля, не могут зарегистрироваться).
null able предназначен только для не зарегистрированных пользователей.

Tomas Takac

Я пропустил твой вопрос мимо ушей. Вы можете установить для полей значение nullable и не заполнять имя пользователя и пароль для незарегистрированных пользователей. В чем проблема? Вы также можете иметь флаг bool, говорящий, зарегистрирован ли пользователь или нет, и построить ограничение поверх этого, чтобы быть в безопасности.

saeed rajabi

мой вопрос таков: какое-то имя пользователя и пароль не имеют данных, это правда?

Tomas Takac

Я не понимаю вашего вопроса. Если вы спрашиваете, есть ли такие записи в вашей базе данных, то я не могу ответить на этот вопрос. Если вы спрашиваете, возможно ли это сделать, то ответ-да. Если вы спрашиваете, является ли это хорошей идеей для реализации его таким образом, то я бы сказал, что вам нужно предоставить больше контекста.

Richard Deeming

Похоже, вы храните пароли в обычном тексте. Это очень плохая идея. Вы всегда должны хранить только соленый хэш пароля пользователя.

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]

1 Ответов

Рейтинг:
7

OriginalGriff

Вы можете иметь nullable имя пользователя и пароль (так как ваш PK является столбцом ID), потому что каждая строка независима друг от друга, и null является допустимым значением.

Я бы не стал делать это сам, так как нет никакой "реальной" необходимости - вместо этого я бы, вероятно, добавил "анонимного пользователя" в ваш список ролей и использовал бы эту роль вместо него - таким образом, вы также можете облегчить системе ограничение того, что они могут смотреть, и перенаправить их на страницу регистрации, если это необходимо. Вместо нулевого имени пользователя и пароля я бы использовал "новый клиент" и пустой пароль, и пусть роль разбирается с тем, что им нужно сделать.
(Это также сокращает работу, которую вам нужно сделать, так как вы можете просто отображать имя пользователя на каждой странице корзины покупок без необходимости добавлять дополнительную проверку на наличие нулевых значений)