Тема: Редагування в таблиці БАГАТО ДО БАГАТЬОХ
Є дві таблиці PA_Mail і PA_UserToMail
CREATE TABLE "PA_Mail" (
"id" INTEGER NOT NULL,
"name" varchar(100),
"message_text" varchar(4096),
PRIMARY KEY("id" AUTOINCREMENT)
)
CREATE TABLE "PA_UserToMail" (
"id" INTEGER NOT NULL,
"mail_id" integer,
"fb_user_id" integer,
FOREIGN KEY("fb_user_id") REFERENCES "PA_FBUser"("id"),
FOREIGN KEY("mail_id") REFERENCES "PA_Mail"("id"),
PRIMARY KEY("id" AUTOINCREMENT)
)
PA_FBUser не показую, так як реалізація таблиці в цьому прикладі не знадобиться.
В програмі яку я розробляю потрібно зробити реалізацію "Edit" функції.
В таблицю PA_Mail записуються тільки:
name (ім'я групи)
message_text (текст який буде надсилатися користувачам)
В таблицю PA_UserToMail потрібно записати:
mail_id - ІД з PA_Mail (тобто воно буде завжди однакове для одного повідомлення, яке надсилається багатьом користувачам)
fb_user_id - ІД з PA_FBUser, список ІД'шок користувачів, кому потрібно надіслати повідомлення.
Підчас редагування користувачі (їх ІД) можуть бути видаленні (DELETE), або додані (INSERT). А сама команда UPDATE не має знадобитися.
Відредагувати PA_Mail легко.
А з PA_UserToMail не зрозуміло як правильно редагувати.
Варіант який я придумав:
* Спочатку знайти всі ІД в таблиці PA_UserToMail БД, яких немає після редагування в таблиці PA_UserToMail програми, і видалити такі рядки з PA_UserToMail БД.
* Потім пошукати всі ІД в таблиці PA_UserToMail програми, яких немає в таблиці PA_UserToMail БД, і додати їх в PA_UserToMail БД.
Запитання:
Чи можна все те що я написав у своєму варіанті реалізувати одним запитом ?
Можливо є вже готові рішення того як правильно редагувати таблицю БАГАТО ДО БАГАТЬОХ в таких випадках як в мене ?