私はデータベース設計の世界に慣れていないので、非常に基本的な質問がいくつかあります。0 人以上のテストを受けることができる人のデータベースを作成したいと考えています。各テストには、説明、スコア、および日付が関連付けられています。オブジェクト指向のバックグラウンドから来ると、これは些細なことのように聞こえますが、mySQL (または他のデータベース言語/プラットフォーム) を使用した同様のシナリオについての言及を見つけるのに苦労しています。
ここで何か助けていただければ幸いです。
私はデータベース設計の世界に慣れていないので、非常に基本的な質問がいくつかあります。0 人以上のテストを受けることができる人のデータベースを作成したいと考えています。各テストには、説明、スコア、および日付が関連付けられています。オブジェクト指向のバックグラウンドから来ると、これは些細なことのように聞こえますが、mySQL (または他のデータベース言語/プラットフォーム) を使用した同様のシナリオについての言及を見つけるのに苦労しています。
ここで何か助けていただければ幸いです。
MySQL はリレーショナル データベースです。つまり、オブジェクトはテーブルとして表されます。これらのテーブルは、キー値によって関連付けられています。
Jerad の回答は、Person オブジェクトと Test オブジェクトのリレーショナル表現の詳細を示しています。キー値は、ユーザー ID とテスト ID です。リレーショナル データベースでは、オブジェクト (テーブル内の行) のインスタンスはキー値によって識別されます。
Jerad の Submission テーブルは、User テーブルと Test テーブルの間の関係を定義します。ユーザーは複数のテストを受けることができ、テストは複数のユーザーが受けることができます。
users、tests、submissions の 3 つのテーブルを作成します。
「ユーザー」テーブルには、各ユーザーに関する情報が保持されます。
「tests」テーブルには、各テストに関する情報が保持されます。
「submissions」テーブルは、他の 2 つのテーブルを結び付けます。ユーザーがテストを受けると、ユーザーの ID、テストの ID、およびタイムスタンプを「submissions」テーブルに追加します。そうすることで、クエリを実行して、どのユーザーがどのテストをいつ受けたかを確認できます。
これは理にかなっていますか?