我有以下數據庫模式。在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)
所以一個用戶有很多電子郵件。 用戶可以訪問他們可以添加/刪除他們的電子郵件的表格。 現在的問題是:哪個更好的方式來更新從這個表單獲得郵件列表的數據庫?
我的想法是這樣的:(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 2009-06-15 01:27:46