안녕하세요. 테이블 Insert에관하여 질문있습니다

프로젝트 명 : 흑기사키우기_테섭

문제 : “userItem” 테이블에서, 컬럼을 Map으로 만들고, Null 비허용 해서 게임 내, Insert가안되는문제,

안녕하세요 개발자님.
userItem Table에서, DefaultSword 라는 컬럼으로, Map 형태로 컬럼을 만들었습니다.

Map은 Key 4개, int 타입으로 하였는데요.

Null을 비허용하니, 게임에서 유저한테 테이블이 Insert가 안되서 게임 내 에러가 생성됩니다.

Map과 List 형태는, Null 비허용하면, 기본값 세팅을 못하는건가요?
못한다면, Null 허용하고 사용해야하는지 궁금합니다,

이 텍스트는 숨겨집니다.

안녕하세요 개발자님.

Map과 List의 경우 콘솔 내 기본값 세팅이 불가능하며, 데이터 삽입시 클라이언트에서 기본값을 전부 입력하신 후 삽입해야 정상적으로 삽입이 됩니다.(그러지 않을 경우 400 bad map data, 잘못된 map data 입니다가 발생합니다)

Null을 허용으로 하실 경우에는 기본값을 입력하지 않아도 삽입이 가능하며 이후에 데이터를 수정하시면 됩니다.

해당 에러는 게임 2번째 사진 160번째 줄에서 데이터를 받아왔는데 아무런 데이터가 없어서 접근이 불가능해 발생하는 오류입니다. Insert의 리턴값을 통해 성공적으로 삽입이 됬는지 확인해주시고 GetMyData의 리턴값에서 rows가 0이 아닌지 확인해주시면 감사하겠습니다.

  1. 보통, 테이블 컬럼 Map, List 작성할 때, Null 값을 허용으로 하는지 궁금합니다.
    => 지금까지 비허용으로 작업하고있었는데, 이런 사항때문에 게임이 멈춰버리는 현상이 나타나네요.

  2. 해당 에러는 게임 2번째 사진 160번째 줄에서 데이터를 받아왔는데 아무런 데이터가 없어서 접근이 불가능해 발생하는 오류입니다. Insert의 리턴값을 통해 성공적으로 삽입이 됬는지 확인해주시고 GetMyData의 리턴값에서 rows가 0이 아닌지 확인해주시면 감사하겠습니다. => Map컬럼에서 Null이 비허용이라 에러가 뜨네요.
    보통은, Null값을 허용해놓나요?

하고자 하는 것이,

SwordGuri 아이템에
ItemLevel : 6
ItemCount : 3
IsEquip : 0 (0 = false, 1 = true)
IsBuy: 1 (0 = false, 1 = true)

이렇게 Map으로, Key 4개, Int 자료형으로 하려고하는데,

이렇게 할수 있는방식이 맞나요?

개발자님들에 따라 다르겠지만 기본적인 모든 데이터의 세팅이 필요할때에는 null 비허용을 추천하지만 그렇지 않을 경우에는 null을 허용하셔도 됩니다.

아래의 사진처럼 설정하신 후 사용하시면 될 거 같습니다.

아래의 사진을 어떤걸 말하는건가요?

Map 으로 Key 4개를 설정하면,

Key마다 Value를 설정할수있는건가요?

아래의 사진은 개발자님이 올려주신 SwordGuri의 스키마테이블 설정 사진을 말한 것이었습니다.

스키마테이블에서 Map으로 데이터를 추가할 경우,
데이터 기본 삽입시(Param에 Map에 대한 데이터가 없이 삽입) Key값은 기본적으로 삽입되지만
해당 Key의 기본 Value는 설정할 수 없습니다.

Map의 데이터 없이 삽입하게 될 경우 다음과 같이 삽입이 됩니다.

“itemLevel”:“int”
“itemCount”:“int”
“IsEquip”:“int”
“IsBuy”:“int”

이부분은 테이블 삽입시 Map 데이터를 함께 넣어주시거나, 기본 데이터 삽입 이후 Map의 데이터를 넣고 업데이트해주시면 됩니다.