Вы по крайней мере захотите сохранить всю информацию для входа в систему (имя пользователя / пароль) в таблице пользователей.Предполагая, что каждый тип пользователя имеет несколько перекрывающихся данных, вы, вероятно, прекрасно сохраните все поля в таблице пользователей (или связанной таблице «профилей»).
Если вы предпочитаете разделять данные, вы могли бы иметьprofile_customers
, profile_retailers
... и т. Д.Но я бы сделал это, только если это почти все разные данные - и я предполагаю, что у большинства будет «телефон», «электронная почта» ... и т. Д.
Самый простой способ, который приходит на ум - создать другую регистрационную форму длякаждый тип просто ссылается на вашу регистрационную форму в зависимости от типа пользователя:
http://www.mysite.com/users/register/customer
Затем в вашем контроллере:
function register($type = null) {
//...
switch($type) {
case 'customer':
$this->render('registration_customer');
break;
case 'retailer':
$this->render('registration_retailer');
break;
case 'manufacturer':
$this->render('registration_manufacturer');
break;
}
//...
Затем вы можете иметь отдельный файл CTP длякаждая страница регистрации.Или, если они сильно перекрывают друг друга, вы также можете просто передать переменную из вашего контроллера в представление и использовать операторы if для отображения только соответствующих полей.
Существует так много способов, которыми это можно сделать, ноосновной ответ на ваш вопрос - если они не сильно различаются в данных, которые вы хотите сохранить, вероятно, лучше всего сохранить их в одной таблице - и наверняка, по крайней мере, сохраните имя пользователя / пароль или адрес электронной почты / пароль в таблице пользователей.