2012-06-05 142 views
1

我有一個數據庫,用戶可以輸入任意數量的興趣。當他們去更新它時,他們可以刪除他們以前的興趣之一。Php Mysql更新

這應該如何處理?更新是否應該從數據庫中刪除所有以前的興趣,然後插入更新的內容?

+0

當你說'檢查'你的意思是'刪除'? –

+0

您能否詳細說明您的餐桌設計,並提供一個用戶及其可能興趣的例子以及他們希望對其興趣所做的改變。 – Jrod

+0

只要你永遠不需要跟蹤'入境日期','去除日期'這些'利益',那麼你的方法就沒問題。如果您可能想在不久的將來追蹤這類信息,那麼現在就可以設置它(只刪除那些不再適用的信息,添加任何新信息)。 – JMC

回答

1

這就是我通常所做的:刪除所有現有記錄並添加新記錄。如果它是一個簡單的交叉引用表,這是最簡單的事情。如果有重要的id字段,則可能需要做其他事情。

+0

謝謝。沒有id域是重要的。只是想確定這是處理這個問題的合理方法。 – james

1

如果您的利益池不存儲在一個單獨的表,你可以使用標誌的方法:

用戶表(例如)

user_id int(8) AUTO_INCREMENT 
user_name varchar(255) 
user_email varchar(255) 

用戶興趣表(例如)

interest_name varchar(255) 
user_id int(8) 
interest_status tinyint(1) 

利息狀態可以是1(對於活躍利息)或0(對於前利息)

另一方面,如果您有興趣池也可以從中選擇一個二元關聯表,然後將​​更改爲它所表示的interst_id。刪除所有舊記錄並用問題標誌重新插入它們。這通常是更容易做的事情,並且不太容易出錯。

+0

感謝您的幫助。 – james