PostgreSQL'te çok değerli bir alan türü var mı?

PostgreSQL'te bir alanda birden fazla değer depolamanın mümkün olup olmadığını bilmek istiyorum.

Jeton adlı bir tablonun id , text ve category sütunları var. category çok değerli bir alandır. Bunun için ayrı bir tablo oluşturmak gerekli mi yoksa Token tablosunda saklamanın bir yolu var mı?

5

2 cevap

PostgreSQL'te diziler bulunmaktadır. Örneğin:

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

Artık her satır için birden çok kategoriyi jeton içine ekleyebilirsiniz:

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

Satırları şöyle bulabilirsiniz:

SELECT * FROM "token" WHERE 'cate1' = ANY ("category");
9
katma
SELECT * FROM jetonu WHERE kategori = 'cate1' gibi bir sorgu yaparsam, sorgu dizinin içinde arar?
katma yazar Renato Dinhani, kaynak
@ RenatoDinhaniConceição Hayır, @> operatörünü kullanabilir veya ANY yerine hyperoperator.
katma yazar minhee, kaynak

Bir kaç tane var:

7
katma