私はJavaで小さなプログラムを作っています。テキストフィールドに名前と生まれた日付を入れると、学期と試験の学生の結果が取得されます。テーブルの下には私が作り、私はこれらのテーブルをリンクするために問題を抱えている:mysqlのworkbenchで私のテーブルをどう思いますか?リンクテーブル?
-4
A
答えて
0
あなたのDB構造には、リンクの可能性を持っていません。
テーブルには、別のテーブルにリンクできるキーがありません。
1対多および多対多の関連付けを識別し、それらをキーとして適切な方法で表現する必要があります。
例:あなたは、これらすべてをうまくする必要が
ideleve | idcourse
:
私は好きですが、テーブルで表現しなければならないこと、そのテーブルの学生とテーブルのコースは、多対多の関係を持っていると仮定任意のクエリを設計するための構造上の関係
あなたのご意見に続き、私は答えを更新します。現実には、私はこの質問を終わらせることにしなければなりません。問題の設定
例:
Each student is identified by:
id | name | surname | born_date
Each course is identified by
id | course_title
Students can enroll in multiple courses
Courses can be held in 1st, 2nd semester or both maintaining the same id and title
There are up to 3 exams per course per semester
Notes of each exam can go from 1 to 5 with 1 being the lowest
Students have to take all the exams, if they do not take an exam their vote is considered 0 for that exam
はこれが可能につながったでしょう:あなたは、列名から理解することができます暗黙的な関係を持つ
DB構造
table students
id_student | name | surname
table courses
id_course | course_title
table exams
id_student | id_course | semester | exam | grade
を。
は、その後、あなたは...コーディングで
を開始することができます。しかし、ここで私は、学生、コース、試験やgardesとその関係上の仮定の全体の多くを作っています!
DBを設計するには、エンティティと関係の分析が必要です。
あなたが言っているように、あなたが言っているように、この分析は複雑ではありませんが、実行しなければならないプログラムは非常に簡単ですが、誰もそれを行うことはできません。最終的にはあなたが行うことができ、問題を明確にあなたの最後のコメントに続いて
:表試験の
DB構造
table students
id_student | name | surname | birthdate
table courses
id_course | course_title | year | semester
table exams
id_student | id_course | year | semester | test | exam | grade
例は次のようになります。
id_student | id_course | year | semester | test | exam | grade
--------------------------------------------------------------
2701 | K409 | 2015 | 1 | 1 | NULL | 4
2701 | K409 | 2015 | 1 | 2 | NULL | 4
2701 | K409 | 2015 | 1 | 3 | NULL | 4
2701 | K409 | 2015 | 0 | NULL | NULL | 3
2701 | K405 | 2015 | 1 | 1 | NULL | 4
2701 | K405 | 2015 | 1 | 2 | NULL | 4
2701 | K405 | 2015 | 1 | 3 | NULL | 4
2705 | K405 | 2015 | 0 | NULL | NULL | 3
2705 | K409 | 2015 | 2 | 1 | NULL | 4
2705 | K409 | 2015 | 2 | 2 | NULL | 4
2705 | K409 | 2015 | 2 | 3 | NULL | 4
2705 | K409 | 2015 | 0 | NULL | NULL | 3
2705 | K407 | 2015 | 2 | 1 | NULL | 4
2705 | K407 | 2015 | 2 | 2 | NULL | 4
2705 | K407 | 2015 | 2 | 3 | NULL | 4
2705 | K407 | 2015 | 0 | NULL | NULL | 3
あなたは試験にコースをリンクすることができます/複数列キーによるテスト:
id_course-year-semester
試験/テストへのリンク学生と:あなたが持っている試験/テスト用テーブルを通してコースに
id_student
リンク学生:
id_student | id_course-year-semester
学生がAコースに登録するときことを意味このような記録は、試験/テストテーブルになります。
id_student | id_course | year | semester | test | exam | grade
--------------------------------------------------------------
2701 | K409 | 2015 | 1 | NULL | NULL | NULL
よろしく
関連する問題
- 1. mysqlテーブルのカスケード削除についてどう思いますか?
- 2. 既存のテーブルをMySQL Workbenchの既存のモデルに追加できますか?
- 3. mysql workbenchをローカルにインストールするにはどうしたらいいですか?
- 4. MySQL Workbenchでpl/sqlまたは同等のものを書くにはどうすればいいですか?
- 5. MySQL Workbenchはどのパラメータをmysqldumpに渡しますか?
- 6. MySQL Workbenchのコメントダイアグラム
- 7. MySQL Workbenchのシンボルリファレンス
- 8. 私はworkbenchの間違いを一度インストールしたので、もう一度mysqlをインストールできますか?
- 9. MySQL WorkbenchのER図はリレーショナルモデルですか?
- 10. MySQL Workbenchモデル - データベースを新しいテーブル配置に割り当てますか?
- 11. のMySQL - インデックス、リンクテーブルを追加
- 12. MySQL Workbench - メニューの重複テーブルコマンドはどこにありますか?
- 13. mysql workbench経由でmysqlデータベースにデータをインポートするにはどうしたらいいですか?
- 14. Mysqlの履歴がWorkbenchのどこから来ていますか?
- 15. のMySQL Workbenchのサポート
- 16. MySQL Workbench EER - テーブル内のすべてのカラムを表示
- 17. フォワードエンジニアがMySQL Workbenchのモデルからテーブルを作成していない
- 18. MySQL Workbenchテーブルのデータインポートウィザードで、0レコードがインポートされるのはなぜですか?
- 19. MySql Workbenchでのインデックス作成
- 20. MySQL Workbenchを使用してすべてのテーブルを検索
- 21. Linux上のMySQL Workbench
- 22. MySQL Workbenchの接続
- 23. MySql Workbench:テーブルの挿入文を生成する
- 24. mysqlのworkbenchのテーブルのインデックスを見るには?
- 25. graphqlリゾルバでmySQLから既存のリンクテーブルをクエリしていますか?
- 26. mysqlのリンクテーブル+結合+カウント
- 27. mysqlのフィルタ行リンクテーブル内
- 28. mysqlのworkbenchで 'select top'が動作していません...どうすればテーブルのトップ5にアクセスできますか?
- 29. MySQL Workbenchパネル
- 30. MySQL Workbenchフォワードエンジニアリレーションシップテーブル
コースにはいくつの試験がありますか?どの学期にどのコースがありますか?しかし、コーステーブルには多くのコースがあります... corse_id | course_name |学期|試験など。問題はあまりにも漠然としてDBの設計に役立ちます。あなたは達成しようとしていることを説明する必要があります.... –
問題を表現してください。問題が設定されていない場合、どのように答えを設計できますか?あなたは何を達成しようとしていますか?テーブルの話をする前に実際の生活コンテストを説明してください... –
コースは、1学年、2学期、または両方で同じIDとタイトルを保持することができます:これは2科目で同じコースが取られます。学期ごとにコースごとに:各学期の各コースについて、テストを行います。試験は昨年行われます。今混乱はテーブルの試験にある id_student | id_course |学期|試験|学期の学期が試験に属するのか、学期に属するのかを知ることは不可能です。それを修正するには? – stack