スタックオーバーフローでは完全に許可されていないアイデアの共有が含まれるため、これは削除される可能性がありますが、それでもその前に、堅実なプログラマーからアイデアを得ることができれば、それは私にとって有利な状況になります
データベースに格納されているクラスStudentがあり、このクラスにfavoriteTeachersというリストプロパティがあるとします。このリストはシステムによって常に更新され、教師のIDが含まれます。
また、クラスTeacherもデータベースに保存されており、同様にリストプロパティfavouriteStudentsがあります。それは再び絶えず更新され、学生のIDを含みます。
私たちのシステムでは、学生が関数(たとえばnotMyFavoriteTeacher)を呼び出すときに、システムは以下の変更を適用する必要があります。
- favouriteTeacherリストから指定された教師のIDを削除します
- 指定された教師のお気に入りの生徒リストから生徒のIDを削除します
更新された行数がデータベースを使い果たす可能性があることを考慮しようとしたので、user_id、teacher_idとして別のテーブルに生徒をお気に入りの教師とマッピングする代わりに、列を作成し、教師IDを含む文字列を格納しました。コンマ。(例:「1,2,14,4,25」)。先生にも同じことが言えます。
ただし、この関数を呼び出すと、別の問題も発生します。この操作を実行するには、文字列をリストに変換し、線形検索で要素を見つけてから削除し、後でリストを文字列に変換してdbにプッシュバックする必要があります。また、教師クラスの他の操作も行う必要があります。文字列方式を適用しないと削除しやすくなりますが、削除と加算の操作は1日2k回程度なので、別々のテーブルを使うのは現実的ではないと思いました。
操作回数を減らすためにお願いしたいのですが、効率が上がるようなデータ構造を選べますか?