질문Q #16732
ci + mssql 로직 문의 드립니다.
경상도곰남2017-02-13 11:12:24

로그인 할 때 선택값에 의하여 데이터베이스 접속을 할려고 합니다.

테이블 구조와 테이블명은 모두 일치하구요.. 

로그인 할때 A를 선택해서 로그인을 하면 로그인 해 있는 동안은 A의 데이터 베이스에 접속 해서 프로그램 처리를 하구요..

B를 선택해서 로그인 하면 B의 테이터 베이스에 접속해서 프로그램 처리를 할려고 합니다.

고려해야 할 점은 사용자 로그인 정보가 모두 틀립니다. A의 사용자 정보와 B의 사용자 정보가 틀립니다.

 

로그인 할 때 선택값을 세션에 담아서  그 세션 값을 db 컨넥션에 사용해야 할지?

아님 다른 방법이 있으시면 조언 부탁드립니다.

 

고수님들의 답변 부탁드립니다.

 

그리고 데이터베이스 옵션에 autoinit = false로 했을 경우 문제가 있을 까요?

 

답변1
#1 kaido 2017-02-13 11:21:48

A 와 B가 뭘 의미 하는 것이죠?

로그인 할때 선택 하는 값인가요? 

 

그렇다면 세션을 줘서 세션값 기준으로 데이터베이스 분류 시켜주면 됩니다.

 

저같은 경우엔 이런 방법을 선택했습니다.

// constants.php

//DB 컨트롤
if(strpos($_SERVER['SERVER_NAME'],"test") !== false){
	define("WEB_DB",  'test'); //DB 셀렉트
}else{
	define("WEB_DB",  'real'); //DB 셀렉트
}

//database.php
$db['test'] = array(...);
$db['real'] = array(...);


//model
$DB = $this->load->database(WEB_DB, TRUE);
$sql = $DB->get('tb_member');
...

분류가 많아지면 직관적으로 분류하려고 상수 설정으로 잡고 설계해 두었습니다.

물론 훅으로 처리 한다든지, 방법은 자유입니다.