我對數據庫概念非常陌生,目前正在學習如何設計數據庫。我有下面列的表...如何使用代理鍵執行更新查詢
這是在MySQL:
1. Names - text - unique but might change in future
2. Result - varchar - not unique
3. issues_id - int - not unique
4. comments - text - not unique
5. level - varchar - not unique
6. functionality - varchar - not unique
我不能選擇上述任何列作爲主鍵,因爲他們可能在將來改變。所以我創建了一個Auto-Increment id作爲names_id。我也有,顯示該表和用戶更新結果的GUI(一個JTable)的基礎上,Names.Names issues_id和意見在這裏是一個很大的文本列。我不能在GUI顯示names_id,因爲它不會使在GUI任何意義。現在當用戶在GUI中爲列2,3,4提供輸入後更新數據庫時,我使用下面的查詢來更新數據庫,因爲Jtable的row_id與names_id不匹配,所以我無法在where子句中使用names_id,因爲並非所有行被加載到JTable上。
update <tablename> set Result=<value>,issues_id=<value>,comments=<value>
where Names=<value>;
我能得到數據庫的更新,但我想知道,如果它確定,甚至沒有使用PK更新數據庫。這有多高效?代理鑰匙在這裏服務的目的是什麼?
謝謝馬特,我會確保它在下一次以正確的格式。 – Raju 2013-03-05 14:46:45