where 사용하여 검색시 누락문제

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요
뒤끝펑션으로 경험치 주는 것을 구현하였고 그에 따라 레벨업도 뒤끝 펑션으로 구현이 되어 있습니다.
스킬이 특정 레벨마다 습득이 되는데 레벨업 했을경우 where, owner_inDate를 활용하여 내가 가진 스킬을 검색하고 차트와 비교하여 스킬을 넣어주고 있습니다.

다만 몇몇 유저에게서 스킬이 중복되는 문제가 발생하고 있습니다.
where 를 사용 하는 방식이 잘못된건지 아니면 다른 방법이 있는건지 알수 있을까요?

안녕하세요 개발자님,

말씀상 쿼리를 통해 자신의 데이터를 검색하고 비교하여 새로운 스킬을 등록해준다면,
테이블 내 하나의 유저가 여러 row데이터를 가지고 있고 where 절을 통해 해당 스킬정보에 해당하는 row를 검색하여 일치하는 스킬이 존재하지 않는 경우 삽입하는 방법으로 구성하여 운영하고 계실것으로 예상됩니다.

다만 남겨주신 정보상 사용하고 계신 where절 코드 및 테이블 정보 등 상세 정보를 확인할 수 없기에 명확한 답변을 드리지 못하는 점 양해 바랍니다.

만약 위 구조가 맞다면 다음과 같은 방법으로 스킬데이터를 구성하며 최적화가 가능할 수 있습니다.

  1. 해당 테이블에 존재하는 나의 데이터를 모두 조회, 동일 스킬정보의 row가 없는 경우 삽입 (일치값이 나올때까지 모두 검색하는 where절보다 더 효율적입니다.)

  2. 테이블에 유저당 1개의 row를 사용하며, 컬럼단위로 데이터를 구성하여 운영(Insert가 아닌 Update 형식)
    예를들어 skill1, skill2 등의 컬럼으로 여러 스킬 데이터를 하나의 row 에 구성하고
    컬럼 내에 저장되는 데이터는
    dictionary 형태로 하여 아래와 같이 관리하거나

    {
        "Learn": "1", //습득시 1, 미습득시 0
        "SkillLv": "5",
        "Point": "0",
        "Enhance": "3",
    }
    

    이를 간소화하여 0/5/0/3 과 같이 저장