我对数据库概念非常陌生,目前正在学习如何设计数据库。我有下面列的表...如何使用代理键执行更新查询
这是在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