私は以下のdbスキーマを持っています。dbのメールリストを更新する最も良い方法
SQL> describe USERS;
Name Null? Type
----------------------------------------- -------- ----------------------------
user_id NOT NULL NUMBER(38)
name NOT NULL VARCHAR2(50)
password NOT NULL VARCHAR2(50)
score NUMBER(38)
notify_before_expiration NUMBER(38)
is_admin NOT NULL NUMBER(1)
SQL> describe EMAIL;
Name Null? Type
----------------------------------------- -------- ----------------------------
email_id NOT NULL NUMBER(38)
email NOT NULL VARCHAR2(50)
user_id NOT NULL NUMBER(38)
1人のユーザーに多数のメールがあります。 ユーザーは、自分のメールを追加/削除できるフォームにアクセスできます。 問題は次のとおりです。このフォームから取得したメールのリストを持つdbを更新するには、どちらが良い方法ですか?
私はのようなものを考えていた:(Javaの擬似コード)
//List of mails in db.
ArrayList<String> emailsInDB = getAllMailsFromDB(user);
//List of mails from the form
ArrayList<String> emailsInForm = form.getAllMails();
//Iterates all emails gotten from the form.
for (String email : emailsInForm) {
if (emailsInDB.contains(email) {
//Already in the db
emailsInDB.remove(email, user);
} else {
//New mail! Add it in the db!
db.insertMail(email, user);
}
//All emails that were in the db, but not in the form,
//were deleted. Delete them from the db.
for (String email : emailsInDB) {
db.deleteMail(email);
}
より良いアイデアは歓迎されています! 読んでいただきありがとうございます。あなたが作ることができる
私はこれに似た何かをやりました。ありがとう。 – Macarse