개발 Q&A

제목 수정기능이 필요한데 이런경우 로직을 어떻게 짜야할까요 ㅜㅜ 아니면 DB구성을 새로해야할지 ㅜㅜ
글쓴이 정수리 작성시각 2016/08/16 08:55:59
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 11718   RSS

계약  테이블            계약맺은 프로그램 테이블                              프로그램 테이블    

rq_pk(기본pk)                      rq_pk//계약pk                                   pg_pg //프로그램pk 

gg_pk//계약맺은 기관pk        rq_pg_pr//프로그램 별 계약금액             pg_name //프로그램명 

rq_date//계약날짜                pg_pk//프로그램pk 

rq_pr //계약금액

 

위 처럼 테이블이 구성되어있습니다 

하나의 계약에 여러개의 프로그램을 계약할수 가있습니다. 

만약에 하나의 계약에 A프로그램, B프로그램을 계약 맺을 경우 

계약테이블 

rq_pk        gg_pk    rq_date      rq_pr  

1                 1      2016-08-01  1,000,000 

계약맺은 프로그램 테이블 

rq_pk        rq_pg_pr      pg_pk  

1               500,000          1  

1                500,000          2 

이렇게 정보가 들어갑니다. 

콘솔에서 계약정보와 계약맺은 프로그램들의 정보를 확인하면

 rq_pk        gg_pk    rq_date      rq_pr      pg_name  rq_pg_pr  pg_pk  

   1              1      2016-08-01  1,000,000  A프로그램  500,000    1  

   1              1      2016-08-01  1,000,000  B프로그램  500,000    1 

위의 정보들을 웹페이지에서 한줄로 보여줘야 합니다. 

계약금액          계약일               프로그램  

1,000,000        2016-08-01    A프로그램:500,000 B프로그램:500,000 

위같이 출력같은 경우 join 및 php를 통해 한줄로 출력하도록 하였습니다. 

문제는 저 출력되는 부분에서 수정이 되도록 해야되는 어떻게 해야 할지모르겠네요 ㅜㅜ 

계약금액이나 계약일은 수정할수가 있는데;; 프로그램 부분의 경우 프로그램별로 금액을 수정해야 하는데

저 상태에서 프로그램이름을 넣고 금액을 입력한 후 데이터를 전송할 경우 

문자열이기에 저 데이터를 각각나누어 프로그램 테이블을 수정해줘야 합니다

ㅜㅜ 프로그램이 한개일 경우는 수정하는 로직을 만들수 있겠으나;; 

다수의 프로그램이 계약이 맺어진 경우 수정을 할때 다수의 프로그램을 수정해야하는데 ㅜㅜ 방법을 잘모르겠네요 ㅜㅜ 

DB구성부터 다시해야 할지 ㅜㅜ 몇일째 해결을 못하네요 ㅜㅜ 나름 데이터를 가져와 explode를 사용하여 자르고자르고 해봐도;; 막히네요 ㅜㅜ  포럼선배님들이 조언이나 노하우좀 부탁드립니다 ㅜㅜ 

 다음글 사이트 차단하는 방법에 대해서 질문합니다. (3)
 이전글 db query 결과를 json처럼 만드는법..? (1)

댓글

kaido / 2016/08/16 09:05:01 / 추천 0

직접 보지 않는이상 정확한 조언은 어렵겠습니다만,

이런 경우 스스로 판별 하셔야 합니다.

 

다시 새로 만드는게 빠른가?

해당 내용을 판별하는 방법을 찾는게 빠른가?

기존 내용을 커스텀해서 사용하는게 빠른가?

 

이 작업을 하면 대략 이정도 일정. 이작업을 하면 대략 이정도 일정.

스스로 일정을 산출해 내서 일정과 리스크를 상관에게 보고 하는 능력을 기르셔야 합니다.

그래야 작업 진행을 하죠.

 

프로그래머는 프로그램만 하는 사람 아닙니다. 경우에 따라서는 1시간 프로그램하고 3시간 문서 작업합니다.

정수리 / 2016/08/16 09:19:43 / 추천 0

@kaido

회사입사해서 후 첫프로젝트를 맡게되어서 진행 중입니다 ㅜㅜ

제 나름 이정도면 되겠다 싶어 일정도 세우고 부장님께 말씀드렸는데ㅜㅜ

저부분에서 계속 시간을 계속 보내게 되어서 ㅜㅜ 일주일정도 더 기간을 늘렸습니다ㅜㅜ

kaido / 2016/08/16 10:23:11 / 추천 0

얼핏봐도 1주일로는 승부 날 사안은 아닐거라 생각 되네요.

아직 배터랑이 아닌 개발자 분들에게 일정 잡을때 항상 하는 조언은 이겁니다.

'타이트하게 잡을려고 하지 마라. 생각 한거에 1.5~2배는 잡아라.'

 

일정을 길게 잡고 일찍 끝내는것은 누구도 뭐라 안하지만, 일정 짦게 잡고 오버하면 일 납니다.

/ 2016/08/16 11:08:35 / 추천 0
@정수리 정리하면 조인으로 불러온 데이터로 리스트를 만드는데 리스트에서 여러 테이블을 수정할 경우 어떻게 해야 하는가에 대해 묻는거 같습니다. 계약 테이블은 컬럼이 중복되지 않을테니 그냥 수정하면되고 계약맺은 프로그램은 중복이 될 테니 수정하기 까다롭겠네요 게다가 텍스트라니 인풋 한개에 다 몰아넣은거 같은데, 이 경우는 수정하려면 어느부분이 바꼈는지 알아내는 알고리즘을 만들어야 하는데, 알고리즘 짜는 시간이 너무 아까워 보입니다. 인풋을 여러개 놓고 input name을 pg_name[pk] 이런식으로 주시고 수정하심이 편해보이네요. A프로그램:500,000 B프로그램:500,000 >> []를 인풋이라 가정하면 [A프로그램]:[500,000] [B프로그램]:[500,000] 이런식으로 묶고 쉼표는 replace하시면 편할거 같네요. 그리고 해당 행을 비동기로 수정 처리하는데로 넘겨서 처리하신 처리 후 반환되는 리스트 행을 갱신해주면 됩니다. 그리고 인풋 보더를 없애는 센스!
정수리 / 2016/08/16 15:05:38 / 추천 0

@kaido

그렇군요 ㅜㅜ 첫프로젝트라 열의만 넘쳤나봅니다 

다음부터는 kaido님께서 말씀하신부분에 신경써서 프로젝트 일정을 잡아야겠네요 ㅜㅜ

정수리 / 2016/08/16 15:10:57 / 추천 0

@닉

답변감사합니다 ^^

이해가 갈것같기도 하면;;

안되는 부분도 있네요;;

pg_name[pk]에서 pk값은 계약pk값을 말하는 걸까요??

그리고 현재 프로그램의 경우 test라는 변수에  'A프로그램:500,000, B프로그램:500,000' 이 문자열이 들어가있습니다;

이걸 [A프로그램]:[500,000][B프로그램]:[500,000]이렇게 묶으시라는게 어떻게하는건지;;

저렇게 할수도 있는건가요;;

마지막에 인풋보더는 어떤걸 말씀하신걸까요 ??

제가 아직 많이 부족해서 ㅜㅜ

이제막 입사한지 8개월차에 프로젝트를 진행할려고 하니 힘드네요 ㅜㅜ

모르는것들투성이라 나름대로 공부하면서하고있는데 ㅜㅜ

/ 2016/08/16 16:23:20 / 추천 0

@정수리 네 계약 pk값이요, [  ]가 하나의 인풋이고 인풋보더는 인풋에 테두리 css를 없애서 하나처럼 만들라는 뜻이었어요 ^^; test라는 변수에 a,b 이런식으로 되어있으니 ,로 explode해서 여러개로 쪼개고 test1이라는 변수 하나 더 만들어서 pk를 ,로 구분해서 또 담고 해서 변경하면 될거같아요

정수리 / 2016/08/16 17:23:13 / 추천 0

@닉

감사합니다...

그런데...의사소통이 서로 잘못되었는지... 부장님말씀으론 굳이 저렇게 할필요없다고 하시네요...

그냥 메모해놓은 곳이라고 그냥 text로 해놓고 하면된다고....

다른테이블과 연동할필요없다고하시구 ...

의사소통의 중요성을 느꼇습니다..

아 아까운시간 ㅜㅜ