我已經開始了我在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