PostgreSQLで利用できる多値フィールド型はありますか?

PostgreSQLのフィールドに複数の値を格納することが可能かどうかを知りたい。

idtextcategory という列を持つ Token という表があります。 category は複数値のフィールドです。別のテーブルを作成する必要がありますか、それを Token テーブルに保存する方法がありますか?

5

2 答え

PostgreSQLには配列があります。例えば:

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

これで各行の複数のカテゴリを token に挿入することができます:

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

あなたは次のような行を見つけることができます:

SELECT * FROM "token" WHERE 'cate1' = ANY ("category");
9
追加された
SELECT * FROM token WHERE category = 'cate1' のようなクエリを実行すると、クエリは配列内を検索しますか?
追加された 著者 Renato Dinhani,
@RenatoDinhaniConceiçãoいいえ、 @> 演算子または ANY ハイパーオペレーター
追加された 著者 minhee,

いくつかあります:

7
追加された