Помогите разобраться с зависимостью данных между двумя формами регистрации - PullRequest
0 голосов
/ 09 июня 2010

У меня тут сложная проблема с регистрацией как пользователя, так и его / ее питомца. И пользователь, и домашнее животное рассматриваются как отдельные объекты, и оба требуют отдельных регистрационных форм. Тем не менее, домашнее животное пользователя должно быть связано с пользователем через внешний ключ в базе данных. Процесс в основном заключается в том, что когда новый пользователь присоединяется к сайту, сначала они регистрируют своего питомца, затем они регистрируют себя. Причина этого заказа заключается в том, чтобы сначала проверить право своего питомца на сайт (есть некоторые критерии, которые необходимо выполнить), вместо того, чтобы заставить пользователя зарегистрироваться только для того, чтобы узнать, что его питомец не имеет права. Именно такой порядок представления форм вызывает у меня небольшую головную боль, как показано ниже ...

Сайт разрабатывается с использованием инфраструктуры MVC, и процесс регистрации пользователя управляется с помощью метода в контроллере User_form, а процесс регистрации домашнего животного управляется с помощью метода в контроллере Pet_form.

Сначала регистрируется форма регистрации питомца, и на этом этапе данные питомца могут быть сохранены без owner_id, при этом возможно добавление идентификатора пользователя (например, путем получения идентификатора питомца из сеанса) после регистрации пользователя. Тем не менее, выполнение этого способа потенциально может привести к избыточным данным, когда записи о домашних животных будут создаваться в базе данных, но если пользователь на самом деле тоже не регистрирует себя, тогда домашние животные будут бесхозными записями в БД.

Другой вариант - сериализация данных о новом питомце на этапе регистрации питомца, не сохраняйте их в БД до тех пор, пока пользователь не заполнит регистрационную форму. Как только пользователь создан, я могу передать сериализованные данные И owner_id методу в модели Pet, который может обновить DB. Однако мне также нужно установить для вновь созданного $ pet значение $ this-> pet, к которому я затем получу доступ для последовательности других связанных форм. Должен ли я просто установить переменную сеанса в методе модели? Затем в конструкторе контроллера Pet выполните проверку для питомца, сохраненного в сеансе, если да, присвойте $ this-> pet ...

Если для кого-то это имеет смысл, и у вас есть какой-то совет, я был бы рад услышать это!

1 Ответ

0 голосов
/ 09 июня 2010

Вот немного левостороннее решение (которое может работать или не работать в зависимости от вашей ситуации:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...