적어도 모든 로그인 정보 (사용자 이름/비밀번호)를 사용자 테이블에 보관하고 싶습니다. 각 사용자 유형에 다소 겹치는 데이터가 있다고 가정하면 users 테이블 (또는 관련 '프로파일'테이블)의 모든 필드를 유지하는 것이 좋습니다.
데이터를 분리하려면 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 문을 사용하여 관련 필드 만 표시 할 수도 있습니다.
이렇게 할 수있는 방법은 여러 가지가 있지만 질문에 대한 주된 대답은 - 저장하려는 데이터가 크게 다를 경우가 아니면 같은 테이블에 보관하는 것이 가장 좋습니다. 사용자 이름/비밀번호 또는 이메일/비밀번호를 사용자 테이블에 보관하십시오.
데이터베이스의 질문이 더 많아 보입니다. 좋은 성능을 위해 첫 번째 방법을 사용할 수 있습니다. 세 가지 유형의 사용자 모두에 대해 동일 할 수있는 필드가있는 표 하나만 사용할 수 있습니다. –