2017-08-15 4 views
1

基本的な質問です。サッカー/サッカーソフトウェアデザインパターン

サッカー/サッカーを考えてください。 私はそれのためのデザインパターンを作ることを考えましたが、既にそこに1つがあるかどうかを知りたかったのです。

それはfollwingとして行く:

私はサッカー選手を作成したいです。

性別があります。 (男性と女性)。

性別にはシリーズカテゴリがあります(たとえば、19歳未満の若者、18歳未満の若者など)。

そのシリーズカテゴリは、地域(または何でも)に配置されます。

その地域の系列名(たとえば系列1、系列2、部門1など)があります。

たとえば、私は女性、シニア、バーミンガムでプレーし、最初の部門にいます。

私はこれをデータベースにマップしたいと思いますが、私はソフトウェア設計パターンに従いたいと思っていましたが、この目的のためのソフトウェア設計パターンがあるかどうかはわかりません。

私の試みは、このようなものです:

Gender 
{ 
    int GenderID 
    GenderType 
} 

SeriesCategory 
{ 
    int SeriesCategoryID 
    string SeriesCategoryName 
    int GenderID 
} 

Region 
{ 
    int RegionID 
    string RegionName 
    int SeriesCategoryID 
} 

Series 
{ 
    int SeriesID 
    string SeriesName 
    int RegionID 
    int SeriesCategoryID 
} 

答えて

0

正規化の原則を使用してデータベースを設計する必要があると思います(詳細はこちら - http://www.studytonight.com/dbms/database-normalization.php

ソフトウェアのパターンについて - あなたのケースの正確なパターンはありません。しかし、SOLIDのようなベストプラクティスと原則を使用してください。コードエンティティをデータベースにマッピングしたり、その逆を行うことは、さまざまな言語と要件(SQL/NOSQL、コードファースト/データベースファーストなど)の膨大なバリエーションに存在するORMの責任です。

サッカー選手とチームの正確なケースでは、DBの正規化はすべてあなたが今必要としているものだと思います。

+0

これは私が一緒に行ったものです。私は、EntityFrameworkをツールとしてasp.netを使用します。 フィードバックにも非常に感謝します。 – jakob

0

は、なぜあなたは、別途「シリーズ」のすべての属性が必要です。それが必要でない場合は、私はちょうど "Footballer"と "League"オブジェクトを作成していました。おそらく1つのリーグでは1つのフットボール選手がプレーできるが、リーグでは多くの選手がいる可能性がある。したがって、「サッカー選手」と「連盟間の多対1の関係が存在することになる。

Footballer 
{ 
    int FootballerID 
    int age 
    GenderType 
    League 
} 

League 
{ 
    int LeagueID 
    String leagueName 
    String regionName 
    String categoryName 
    GenderType 
} 

のでFootballerIDとLeagueID間の多対1の関係があります。まず、あなたがどんなサッカー選手なしでリーグを作成することができますその年齢と性別のフットボール選手を作ってから、リーグの年齢や性別の制限をチェックすることで、このサッカー選手をリーグに加えることができます。チームのオブジェクトも素晴らしいかもしれません。

+0

Hm ...ここでの問題は、すべてのシリーズ、地域、リーグがあらかじめ定義されていることです。 私はあなたが意味することを得ると思いますが、地域にもっと多くのアドオンの制限がある場合は、それらを分離する方がより柔軟になると思います。 しかし、私はまだ答えに感謝したいと思います。 – jakob