1-many
Postgres arrays を使用して関係がモデル化されている次の疑似スキーマがあるとします。
CREATE TYPE quotes AS
(
text CHARACTER VARYING,
is_direct CHARACTER VARYING
);
CREATE TABLE posts
(
body CHARACTER VARYING,
q quotes[]
);
insert into posts(body,q) VALUES('ninjas rock',ARRAY[ ROW('I AGREE',True)::quotes, ROW('I DISAGREE',FALSE)::quotes ]);
私の最初の質問は、選択を実行してquote->text
配列全体から除外するにはどうすればよいかということです。
これは機能します:
test=# select body, q[1].text from posts;
body | text
--------------+---------
hassan rocks | I AGREE
(1 row)
しかし、これはそうではありません (複合型全体が取得されていることに注意してください):
test=# select body, (q).text from posts;
body | text
--------------+-------------------------------------------------
hassan rocks | {"(\"I AGREE\",true)","(\"I DISAGREE\",false)"}
(1 row)
私の本当の質問に橋を架けるためにto_tsvector
、投稿本文とすべての引用テキストの両方のテキストを含むジンまたは要点 ( の有無にかかわらず) インデックスを作成するにはどうすればよいですか? トリガーが私を悲しませるので、索引付けの余分な列アプローチを使用しないことを好みます。
現在、私のスキーマは投稿と引用を1-many
関係として表していますが、postgres が私がやろうとしていることをサポートしていれば、物事は大幅に簡素化されると思います。