PostgreSQL-da bir nechta qiymatli maydon turi mavjudmi?

PostgreSQL-da bir nechta qiymatlarni saqlash mumkinmi, bilmoqchi edim.

kodi , matn va category ustunlari bilan Token deb nomlangan jadvalga egamiz. turkumidagi - bir nechta qiymatli maydon. Buning uchun alohida jadval yaratish kerakmi yoki uni Token jadvali bilan saqlash uchun usul bormi?

5

2 javoblar

PostgreSQL-da arrays mavjud. Misol uchun:

CREATE TABLE "token" (
  "id"       integer PRIMARY KEY,
  "text"     text,
  "category" text[]
);

Endi har bir satr uchun bir nechta toifani belgisi ga qo'shishingiz mumkin:

INSERT INTO "token" ("id", "text", "category")
VALUES (1, 'some text', ARRAY['cate1', 'cate2']);

Quyidagi kabi qatorlarni topishingiz mumkin:

SELECT * FROM "token" WHERE 'cate1' = ANY ("category");
9
qo'shib qo'ydi
Agar SELECT * FROM token WHERE kategoriyasi = 'cate1' kabi so'rovlar qilsam, so'rovlar qatorning ichida qidiradi?
qo'shib qo'ydi muallif Renato Dinhani, manba
@ RenatoDinhaniConceição Yo'q, siz @> operatorini yoki ANY o'rniga hiperoperator.
qo'shib qo'ydi muallif minhee, manba

Bir necha bor:

7
qo'shib qo'ydi