Zend Auth – использование двух таблиц

В настоящее время я разрабатываю веб-сайт в Zend Framework, который использует Zend_Auth. Текущий дизайн базы данных следующий:

  • пользователей – id / email
  • users_props – id – user_id – prop_name – prop_value

Однако текущий Zend_Auth_Adapter_DbTable использует только одну таблицу, так как там, где у меня есть таблицы, и вам нужно присоединиться к ним.

Как я могу это сделать? Что касается меня, есть три варианта:

  1. Я каким-то образом создаю представление (mysql)
  2. Я меняю дизайн так, чтобы таблица users содержала как имя пользователя, так и пароль
  3. Я переписываю Zend_Auth_Adapter_DbTable в Custom_Auth_Adapter_DbTabe

Может ли кто-нибудь указать мне, что такое лучшая практика?

Заранее спасибо 🙂

Правильная задача – создать пользовательский Zend_Auth_Adapter который будет проверять вашу конкретную схему БД.

На самом деле это довольно просто, в интерфейсе есть только один метод. Возможно также, что вы можете расширить возможности Zend_Auth_Db_Adapter и, при необходимости, переопределить методы. Вероятно, только то, что builds выполняет и возвращает результат запроса. Но, честно говоря, я бы просто внедрил interfae с нуля, это я. Гораздо проще так ИМО ðŸ™‚