Я создаю приложение, которое будет работать с таблицей User
, в пользовательской таблице есть много других столбцов, таких как «Электронная почта», «Имя», «Адрес» и т. Д.Для пользователя существует этап проверки, который необходимо подтвердить при вводе адреса электронной почты.На странице будут отображаться все пользователи, которые не подтверждены и которые ввели адрес электронной почты.
Я подготовил три примера / подхода и задаюсь вопросом, что будет наиболее продуктивным способом, если потребуется также ведение журнала.все проверки в случае, если один проверен по ошибке, поэтому удалите подтверждение.Кроме того, предположим, что существует более одного типа проверки, поэтому есть один для адреса электронной почты, а другой - для адреса улицы.
Следует учесть несколько моментов: если пользователь добавит адрес электронной почты позднееdate, то он должен автоматически войти в очередь проверки, потому что он распознает его либо напрямую, либо ему придется создать предварительно установленное значение (как в примере 2).
Я предпочитаю сделать приложение более легким.вес (как в примере 1), но я не хочу идти на компромисс по производительности, и мне нужна помощь или какое-то подтверждение того, как подойти к этому ..
ПЕРВЫЙ ПРИМЕР
Страница очереди проверки будет отображать данные:
SELECT * WHERE EMAIL <> '' AND User.IsVerified = 0
Поля будут выглядеть примерно так:
//for handling verified
User.IsVerified bit = 0,
User.VerifiedDate datetime,
User.VerifiedNotes varchar(250),
User.VerifiedBy varchar(20)
ВТОРОЙ ПРИМЕР
Сначала мы определяем, требуется ли проверка:
UPDATE User SET User.NeedsVerification = 1 WHERE User.Email <> ''
Во-вторых, на странице будут отображаться данные:
SELECT * WHERE User.NeedsVerification = 1 AND User.IsVerified = 0
поля будут выглядеть так:
//for handling verified
User.NeedsVerification bit,
User.IsVerified bit,
User.VerifiedDate datetime,
User.VerifiedNotes varchar(250),
User.VerifiedBy varchar(20)
ТРЕТИЙ ПРИМЕР
На странице очереди проверки будут отображаться данные:
SELECT * FROM User INNER JOIN Verification ON User.ID Verification.UserID WHERE User.EMAIL <> '' AND Verification.ID Is Not Null
Поля будут находиться в другой таблице, толькоРассматривая эту опцию, потому что может быть больше типов Проверок и вместо поля NeedsVerification
, это может быть больше похоже на Если даже существует какая-то сделка:
Verification.UserID int,
Verification.Type int,
Verification.IsVerified,
Verification.VerifiedDate datetime,
Verification.VerifiedNotes varchar(250),
Verification.VerifiedBy varchar(20)