저는 CI에서 첫 프로젝트를 시작했고 다시 매듭에 빠졌습니다!CodeIgniter의 관련 모델
나는 "회사"
하는 회사는 다음과 같은 구성의 모델, 컨트롤러, 뷰 및 데이터베이스 테이블을 만들었습니다
Company ID
Company Name
Company Registration Number
Credit Limit
Website
Address
Postcode
Country
내 컨트롤러는 기업의 목록을 볼 수 있습니다를, 회사를 편집하거나 새 회사를 만들 수 있습니다.
이제 각 회사가 "연락처"목록을 갖기를 바랍니다. 회사마다 하나 이상의 연락처가 있습니다. 내 연락처 테이블은 다음과 같이이다 : 나는 혼란 다음과 같이 많은 질문이 들어 왔 곳
Contact ID
Company ID (this is the foreign key)
First Name
Last Name
Position
Email Address
Telephone
Mobile
이것은 : 나는 "연락처"에 대한 완전히 분리 모델, 컨트롤러와 뷰를 함)
1 ? 그들이 서로 관련되어 있기 때문에 그들이 분리되어야하는지, 아니면 "회사"컨트롤러와 모델의 일부인지 여부가 명확하지 않습니다.
2) 내 성향은 연락처가 별도의 모델이어야한다는 것입니다. 이 경우 회사를 삭제할 때 해당 회사의 모든 관련 연락처를 삭제하고 싶을 수도 있습니다.
$this->company_model->delete_company($company_id) /* Delete from both company & contacts */
을 또는이 같은 두 모델을 호출해야합니다 : 당신은에서 전체 삭제 프로세스의주의를 기울여야한다
$this->company_model->delete_company($company_id);
$this->contacts_model->delete_contacts_list($company_id);
3) 어떤 것 /해야 내 라우팅 모습처럼. 연락처보기, 추가 및 삭제는 회사보기를 통해서만 이루어집니다. 따라서 회사 ID 123이 다음과 같이 표시되는 경우 :
/company/view/123
회사 123과 관련된 연락처는 어떻게 볼 수 있습니까?
/company/view/123/contacts
또는이 같은 :이처럼
/contacts/123
나는이 질문을보고 충분히 명확하고 감사 바랍니다.
"연락처"는 "compa"와 별개의 모델이 아니어야합니다 ny "인데, 왜냐하면 그들은 관련이 있어도 연락처가 회사가 아니기 때문입니다. 온라인 상점이 있고 제품, 판매, 고객 등에 대한 별도 모델 대신 "상점"이라는 하나의 모델 만있는 것과 같습니다. – MrCarrot
상점 모델 인 경우 하나의 모델 만 만들고 회사와 연락 방법을 모두 입력하고 메서드를 호출 할 때 $ this-> shop_model-> delete_company ($ company_id)와 같이 작성해야합니다. $ this-> shop_model-> delete_contacts_list ($ company_id); –
그러나 회사가 연락처뿐만 아니라 판매 주문 및 송장을 가지고있을 때는 어떻습니까? 확실히 모든 것이 하나의 모델로 들어가면 안됩니까? 각 데이터베이스 테이블의 모델이 더 나은 설정이 아닌가? – MrCarrot