Мы запускаем веб-сайт (платная подписка), и процесс регистрации включает в себя ввод кода активации. Коды активации напечатаны на скретч-картах и продаются через офлайн каналы. Некоторые из этих карт рассчитаны на 1 месяц. Другие на 3 месяца и 1 год. Коды активации представляют собой уникальные 10-значные случайные числа.
Когда доступ истекает, пользователи могут купить другую карту активации и продлить подписку, введя новый код активации. Кроме того, мы также сможем продлить подписку, если они об этом попросят. Например, до определенной даты (например, 1 дополнительная неделя).
Учитывая вышеизложенную информацию, как бы вы спроектировали БД для отношения user-Activation_code? Как вы думаете, этот дизайн хорош?
tbl_user
----------------
id
name
status_id
tbl_user_status
----------------
id
description
tbl_activation_code
----------------
activation_code
activation_code_type_id
activation_code_status_id
user_id
activated_date
expiry_date
tbl_activation_code_type
----------------
id
description
tbl_activation_code_status
----------------
id
description
Обновление : потребуются только коды активации:
1) При первоначальной регистрации
2) Ближе к дате окончания доступа (скажем, 7 дней), когда система отображает уведомление со ссылкой на страницу для ввода кода активации
3) После истечения срока действия, когда пользователь пытается войти, ему будет предложено ввести код активации
Следовательно, пользователь не должен вводить код активации, как и когда хотел.