У меня есть внештатное веб-приложение, которое позволяет пользователям регистрироваться на события. В моей базе данных у меня есть таблица t_events_applicants со столбцом t_events_applications.user_id с ограничением внешнего ключа, связанным со столбцом t_users.user_id. Таким образом, это означает, что только пользователи, которые зарегистрировались в моем веб-приложении, могут регистрироваться для событий моего веб-приложения.
Мой клиент теперь хотел бы разрешить незарегистрированным пользователям, пользователям, у которых нет записи в моей таблице t_user, регистрироваться на события. Этим незарегистрированным пользователям нужно только указать свое имя и адрес электронной почты, чтобы зарегистрироваться для участия в мероприятиях.
Должен ли я создать таблицу t_teven_user с именем столбца и адресом электронной почты, а затем удалить ограничение fk t_events_applicants.user_id? Или я должен добавить незарегистрированных пользователей в таблицу t_user, а затем добавить столбец с именем t_user.type, где тип может быть «зарегистрированным» или «незарегистрированным»?
Как мне решить, какой подход выбрать?
Много раз я сомневаюсь при любом подходе. Я спрашиваю себя: «Что если в будущем временному пользователю будет разрешено стать полностью зарегистрированным пользователем? Тогда, возможно, у меня должна быть только таблица t_user. Но тогда я также не чувствую себя хорошо при хранении большого количества временных пользователей в t_user. "