В рамках процесса регистрации мое приложение отправляет токен по электронной почте для подтверждения идентификатора электронной почты пользователя. Я хочу сохранить токен в базе данных и получить его позже. Я могу сделать это:
cqlsh:> CREATE TABLE user_authentication_token (
id uuid,
user_id uuid,
email text,
expiration_time timestamp,
is_sign_up boolean
PRIMARY KEY((id,user_id,email,expiration_time))) WITH COMMENT = 'table is used to store the tokens generated by the application to confirm email ids or to reset passwords.'.
Я хочу создать утилиту очистки, чтобы можно было периодически удалять все токены с истекшим сроком для оптимизации базы данных. Я предполагаю, что запрос, чтобы найти все просроченные токены, мог бы быть чем-то в строках where partition key is less than now()
.
Есть ли способ, которым я мог бы создать единую схему, которая позволяла бы запрашивать таблицу, используя либо id,user_id,email,expiration_time
, чтобы найти один токен, либо просто expiration_time
, чтобы найти все токены с expiration_time
меньше now()
?
В идеале я бы предпочел не создавать отдельную таблицу.