私はデータベースの概念に非常に慣れておらず、現在データベースの設計方法を学んでいます。以下の列を持つテーブルがあります...
これは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
上記の列は将来変更される可能性があるため、主キーとして選択できません。そこで、自動インクリメント ID を names_id として作成しました。また、このテーブルを表示する GUI (JTable) もあり、ユーザーは Names.Names に基づいて Result、issues_id、およびコメントを更新します。ここにあるのは大きなテキスト列です。GUI では意味がないため、GUI に names_id を表示できません。GUI で列 2、3、4 の入力を行った後にユーザーがデータベースを更新すると、以下のクエリを使用してデータベースを更新しましたが、where 句で names_id を使用できませんでした。行は JTable にロードされます。
update <tablename> set Result=<value>,issues_id=<value>,comments=<value>
where Names=<value>;
データベースを更新できましたが、PK を使用せずにデータベースを更新してもよいかどうかを知りたいです。これはどのくらい効率的ですか?ここで代理キーはどのような目的に役立ちますか?