제목 | 여러 테이블에 영향을 미치는 작업을 할 때 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 마카바 | 작성시각 | 2017/01/20 21:53:44 |
|
|||
안녕하세요 매번 감사드립니다. 새로고침으로 날려먹어서 두번째 쓰네요 ㅠㅠ
하나의 작업에 여러가지 테이블에 영향을 미칠 때 어떤 식으로 코딩하는것이 best practice인지 궁금증이 없어지질 않아 질문 남깁니다.
가령, 등록 버튼을 눌렀을 때
이런 작업에서 A에서 중복되는 데이터가 있어도 안되고, A와 B에 insert하는 과정에서도 실제 삽입이 된 row가 있어야 하고 update까지 모두 마쳐야 success를 응답으로 주고 싶다면 ... $query = $this->db->get(); $resultA = $this->db->get(); if($query->num_rows() > 0){ $resultB = $this->db->insert(~~); if($resultB){ $this->db->update() } } 이런 식으로 if, else를 남발하지 않고선 방법이 없는걸까요? ㅠ 각각의 에러 상황에서 response를 다르게 주고 싶다고 하면 코드가 더 지저분해집니다. 고수님들의 의견이 궁금해요. transaction?을 쓰면 실제로 affected된 row가 없어도 그대로 진행이 되고 롤백이 되지 않기 때문에 제가 원하는 방향이 아닌 것 같다는 생각이 들구요.. |
|||
다음글 | db 쿼리 결과값 받아올때 에러가 발생합니다. (11) | ||
이전글 | codeigniter3 버전에서 서브도메인 라우팅 관련... (9) | ||
한대승(불의회상)
/
2017/01/20 22:26:33 /
추천
0
|
마카바
/
2017/01/22 17:29:03 /
추천
0
그렇군요 감사합니다 ^^
|
지저분해 보여도 그렇게 하는게 좋습니다.
transaction은 필수구요.
transaction을 쓰지 않으면 insert는 됐는데 update 에러가 났을때 대책이 없습니다.