PostgreSQL의 필드에 여러 값을 저장할 수 있는지 알고 싶습니다.PostgreSQL에서 사용할 수있는 다중 값 필드 유형이 있습니까?
id
, text
및 category
열이있는 Token
테이블이 있습니다. category
은 다중 값 필드입니다. 별도의 테이블을 생성해야합니까 아니면 Token
테이블에 저장하는 방법이 있습니까?
PostgreSQL의 필드에 여러 값을 저장할 수 있는지 알고 싶습니다.PostgreSQL에서 사용할 수있는 다중 값 필드 유형이 있습니까?
id
, text
및 category
열이있는 Token
테이블이 있습니다. category
은 다중 값 필드입니다. 별도의 테이블을 생성해야합니까 아니면 Token
테이블에 저장하는 방법이 있습니까?
PostgreSQL에는 arrays이 있습니다. 예를 들어 :
CREATE TABLE "token" (
"id" integer PRIMARY KEY,
"text" text,
"category" text[]
);
이제 token
에 각 행에 대해 여러 범주를 삽입 할 수 있습니다
SELECT * FROM "token" WHERE 'cate1' = ANY ("category");
여러 가지가 있습니다 :
INSERT INTO "token" ("id", "text", "category")
VALUES (1, 'some text', ARRAY['cate1', 'cate2']);
당신은 같은 행을 찾을 수 있습니다
같은 쿼리는'* 토큰 FROM WHERE 카테고리 = 'cate1'' 쿼리를 선택 배열 안에서 검색할까요? –
@ RenatoDinhaniConceição 아니요, 대신 @@ 연산자 또는 ['ANY'] (http://www.postgresql.org/docs/9.0/interactive/functions-comparisons.html#AEN16871) hyperoperator를 사용할 수 있습니다. – minhee