제목 | 어떤식으로 모델을 구성, 구조를 잡을지,, 조언 부탁드려용 ㅠ | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | neo천 | 작성시각 | 2018/11/12 12:06:58 |
|
|||
모델의 구조? 구성을 어떻게 잡는게 좋을지?,, 조언이 필요합니다 ㅠ 혼자 만들다보니 조언을 구할때가 없어서 문의를 남깁니다.
일단은 제가 예전에 썼던 모델의 구조입니다. //부모클래스class CI_ArBuilder extends CI_Model { protected $table = ""; function __construct($table) { parent::__construct(); $this -> table = $table; } private function selectSql($select) { if ($select != '') { $this -> db -> select($select); } } public function qeuryBinding($sql, $arrData, $arrWhere) { $this -> db -> where($arrWhere); $query = $this -> db -> query($sql, $arrData); return $query -> result_array(); } public function insertDbData($arrData) { $result = $this -> db -> insert($this -> table, $arrData); return $result; } public function updateDbData_batch($arrData, $whereColumn) { $result = $this -> db -> update_batch($this -> table, $arrData, $whereColumn); return $result; }
........ ........ //이하 10~20개의 AR관련 메소드가있습니다. }
//자식클래스class User_model extends CI_ArBuilder { public function __construct() { // Call the CI_ArBuilder constructor parent::__construct('USER_INFO'); } } 요런식으로 테이블('USER_INFO')마다 담당모델클래스(User_model)를 만들어주고 부모클래스(CI_ArBuilder)를 상속받아서 썻습니다.이때는 정규화 이런거 신경을 안쓰던터라 join을 쓸 필요가없어서 잘 사용하고있었습니다. ========================================================= 요즘에는 이런 구조에 문제점이 많다는 걸 생각했습니다. (join(두 테이블이상)일때, 어떤 자식클래스에 메소드를 추가하는가? / CI_ArBuilder의 메소드로 보통 처리가 다 되어서불필요한 자식클래스가 많아지는것(테이블 갯수 = 클래스갯수) ) ========================================================= 조인을 사용할 경우가 많아지고, 테이블(약70~90)이 많아지니, 어떤 식으로 구조를 잡고쓸지 감이 안잡힙니다. 경험이나, 현재사용하시는 구조에 대해 얘기해주시거나, 팁을 알려주시면 감사하겠습니다. 조언 부탁드립니다! 항상감사합니당 |
|||
다음글 | ajax를 이용한 페이지 이동 (2) | ||
이전글 | 지금 시점에 서비스 개발시 ci3 , ci4 어떤걸 추... (4) | ||
변종원(웅파)
/
2018/11/12 12:33:27 /
추천
0
|
neo천
/
2018/11/12 13:36:07 /
추천
0
그럼 웅파님, 각 테이블별로 모델클래스를 만드는 부분은 비효율적일까요?, 모델 구조를 어떤식으로 잡고 가는게 확장성이나, 유용하게 쓸수있을지...조언 부탁드립니다 ㅠ 예를들어 테이블별로 클래스를 나누지않고, 다른 방법을 쓴 경우는 어떤 방식이었는지...등등 ㅠㅠ 경험이 부족해서,, 감이 너무안옵니다.. |
변종원(웅파)
/
2018/11/12 17:38:44 /
추천
0
neo천/ 저는 컨트롤러에 대응되도록 모델을 만듭니다. 컨트롤러는 메뉴 또는 기능단위로 만들구요. 컨트롤러가 커지면 쪼개고 그때 모델도 분리합니다. ERD가 있으면 굳이 테이블 단위로 대응하는 모델을 만들지않고 관리를 할 수 있습니다. 테이블단위로 관리하려고 하는 이유가 있을까요? |
neo천
/
2018/11/13 09:30:05 /
추천
0
테이블 단위로 관리하려는 이유는 없구 아마도, 제가 경험이 부족하다보니 그렇게 구조가 잡힌것같습니다 (다른 방법을 모르니,, 생각을 하고 고민해도 아는게 한정되다보니 그렇네요 ㅠ) 웅파님 답변을 참고하여 좀더 고민해보겠습니다! |
저는 확장 고려해서 AR을 직접 사용하는 형태로 씁니다.
AR도 어떻게 보면 Wrapper 인데 그걸 또 Wrapper 형태로 감쌀 필요가 있을까 하는게 제 생각이라서요.