У меня есть следующие таблицы
![enter image description here](https://i.stack.imgur.com/9wF8j.png)
Таблица ключевых слов
CREATE TABLE trigger_keyword
(
id bigint NOT NULL,
keyword text NOT NULL,
CONSTRAINT trigger_keyword_id PRIMARY KEY (id)
)
Это таблица мостов
CREATE TABLE trigger_keyword_trigger_message
(
trigger_keyword_id bigint NOT NULL,
trigger_message_id bigint NOT NULL,
CONSTRAINT trigger_keyword_trigger_message_trigger_keyword_id_fkey FOREIGN KEY (trigger_keyword_id)
REFERENCES public.trigger_keyword (id) MATCH SIMPLE
ON UPDATE CASCADE
ON DELETE NO ACTION,
CONSTRAINT trigger_keyword_trigger_message_trigger_message_id_fkey FOREIGN KEY (trigger_message_id)
REFERENCES public.trigger_message (id) MATCH SIMPLE
ON UPDATE CASCADE
ON DELETE NO ACTION
)
таблица сообщений
CREATE TABLE trigger_message
(
id bigint NOT NULL,
message text NOT NULL,
CONSTRAINT trigger_message_id PRIMARY KEY (id)
)
У меня есть список строк вне базы данных PostgreSQL, который я буду запускать в цикле.
Предположим, у нас есть следующие ключевые слова в таблице trigger_keyword
Таблица триггерных ключевых слов
id keyword
----------------------------------------
1 hi
2 hello
3 the weather
4 the climate
Таблица триггерных сообщений
id message
-----------------------------------------
1 Hi how is your day?
2 Hello, have a wonderful day
3 Looks sunny today
4 Excellent, no rain today
5 looks like we'll have showers today
Допустим, одна из наших строк - Hi Robot!
, тогда запрос SQL должен вернуть Hi how is your day?
или Hello, have a wonderful day
;он должен выбрать один из них случайно.Он должен делать то же самое, если строка содержит hello robot
вместо hi robot
, поскольку hi
и hello
находятся в таблице ключевых слов.
И если строка содержит tell me the weather
, тогда запрос SQLдолжен возвращать Looks sunny today
или Excellent, no rain today
или looks like we'll have showers today
в случайном порядке.
Я полагаю, мне придется использовать полнотекстовый поиск для этого?
Я впервые использую таблицу мостов, я вручную вставляю отношения в таблицу мостов?