各ホールまたはラウンドに関するゴルフのスコアやその他の統計を格納するデータベースを設計していますが、どの方法が最も効率的かを判断するのに苦労しています。私の質問は、コースとラウンドのテーブルの構造に関するものです。ここに 2 つの選択肢がありますが、3 番目の選択肢があるかどうかはわかりません。mySQL 5.1.63 と PHP 5.2.17 を使用しています。読みやすいように CAPS の表。
- この情報はデータベースに一度だけリストされるため、すべてのコース情報を格納する 1 つの大きなテーブルを用意します (~100 列...18 ホール * course_name、場所、電話などに加えて、各ホールに 4 つの属性)。
- コース: course_id、par_1、par_2、...par_18、distance_1、distance_2、...distance_18 など。
- コース情報をテーブルに分割し、特定のテーブルを適切なタイミングで course_id に接続します
- COURSE_PAR: course_id、par_1、par_2、...par_18
- COURSE_DISTANCE: course_id、distance_1、distance_2、...distance_18
- COURSE_INFO: course_id、course_name、住所、電話番号...
- 等
ラウンドの記録についても同様の質問をすることができます。round_1、round_2、...、hit_fairway_1、hit_fairway_2、num_putts_1、num_putts_2 を持っていますか? それとも、これらの属性をそれぞれ独自のテーブルに分割しますか? この質問とその回答は、これを表に分割する方向に傾いています。それは次のような構造を意味しますか?
- スコア: ホール番号、コース ID、ラウンド ID、スコア、フェアウェイ ヒット、パット数、...
定期的なクエリ (PHP を使用) は、その人がパーより上または下にヒットしたか、フェアウェイにヒットしたか、パットの数などでほとんどオンになります。
うまくいけば、私の質問は十分に明確でした。上記のような似たような質問があることは知っていますが、それらの回答を私が探していたものに完全に移すことはできませんでした.
ありがとうございました!