サッカースコア用のデータベースを作成したいと思います。明らかにデータベースを設計するには?
、我々は持っている:
- 国(オランダ、ドイツ、(しかし、またヨーロッパ))
- 大会(エールディヴィジ、ブンデスリーガ、UEFAヨーロッパリーグ)
- チーム (FCトゥウェンテ、バイエルン・ミュンヘン、アトレティコ・マドリード)
- プレーヤー(Luuk de Jオング、マヌエル・ノイアー、ティアゴ・メンデス)
- マッチ(FCトウェンテ - PSV、バイエルン - レバークーゼン、など)
- イベント(目標はルーク・デ・ヨングで40分に得点)
I
明らか
、競争が国にバインドされ、チーム、Eのプレイヤー:「私は、以下のスキームを作成しているDezignを使用してメートルtc。
しかし、いくつかの問題が発生します。イベントはマッチとプレイヤーに属します。したがって、イベントはmatch_id
とplayer_id
になる可能性があります。しかし、どのチームのどの選手でも、彼が所属していない試合で「得点する」ことができます(チームCの選手はチームAとチームBの試合でスコアをつけることができます)。これをどのようにして制限することができますか?
また、チームは「通常の」競争だけでなく、チャンピオンズリーグでも競争することができます。したがって、Teamエンティティの単純なcompetition_idでは十分ではありません。
あなたは他の考えをお勧めしますか?
編集フィリップ
問題の追加画像を参照してください。そういう意味ですか?試合のスコアリングの問題以外では、実際にプレイヤーのために働くことがわかります。しかし、同じ 'match_id'を持つ2つ以上の' Lineup'sをどのようにして制限することができますか? – nhaarman
Lineupに 'match_id'がありませんが、代わりに' home_lineup_id'と 'away_lineup_id'があります。この方法では、1回の試合につき2つのラインナップしかできず、ホーム/アウェイ情報が失われません。 –
イメージをもう一度編集しました。これまでのところ多くありがとう、私は最後の質問があると思います。 'LineupPosition'でエントリーを作成すると、いくつかのチームのプレーヤーを同じ' lineup_id'に追加することができます。これは便利です(例えば代表チーム)が、「通常の」競技の試合ではこれは不可能ではありません。それについての考えは? – nhaarman