RDBMS에 길이를 알 수 없는 배열을 저장하려면 먼저 RDBMS의 데이터 타입에 대해 이해하여야 합니다. 먼저 RDBMS에서는 배열을 저장할 수 없는 데이터 타입을 지원하지 않는데, 배열을 저장할 수 있는 방법이 없는것은 아닙니다.
먼저 데이터 타입을 확인해 보도록 하겠습니다.
숫자형 데이터 타입은 정수 타입, 부동 소수점 타입, 고정 소수점 타입으로 구분합니다.
날짜형 데이터 타입은 여러가지가 있습니다. 날짜 및 시간, 연도 데이터를 삽입할 수 있습니다.
이진 데이터 타입은 데이터를 바이너리 파일 형태로 저장할 수 있는 데이터 타입 입니다.
지원하는 데이터 타입에 나와있듯이 '배열'을 저장할 수 있는 데이터 타입은 없습니다. 즉, 정상적으로는 배열을 삽입할 수가 없는 것인데, 자바스크립트에서는 아래와 같은 방식으로 동적 배열을 저장할 수 있습니다.
let array = [];
for(let i = 0 ; i < 10 ; i++){
array.push(i);
}
console.log(array); // [0,1,2,3,4,5,6,7,8,9]
위에 선언된 동적 배열을 데이터 베이스에 저장하기 위해서는 문자열 및 이진 데이터로 변환하면 됩니다. 그러면 위에서 언급되어 있는 데이터 타입 중 문자 데이터 타입 및 이진 데이터 타입에 삽입할 수 있습니다.
let array = [];
for(let i = 0 ; i < 10 ; i++){
array.push(i);
}
console.log(array); // [0,1,2,3,4,5,6,7,8,9]
let string = array.toString();
console.log(string); // "0,1,2,3,4,5,6,7,8,9"
데이터 베이스에서 꺼낸 후 다시 배열로 돌리려면 split
메서드를 이용하면 됩니다.
let array = [];
for(let i = 0 ; i < 10 ; i++){
array.push(i);
}
console.log(array); // [0,1,2,3,4,5,6,7,8,9]
let string = array.toString();
console.log(string); // "0,1,2,3,4,5,6,7,8,9"
// DB 접근 및 데이터 조회
let change = string.split(',');
console.log(change); // ['0','1','2','3','4','5','6','7','8','9']
보다시피 위 예제는 정수로 이루어져있던 요소가 문자열이 된 만큼 다시 정수형으로 돌리는 과정이 필요합니다.