2017-08-15 90 views
1

一个基本问题。足球/足球软件设计模式

想想足球/足球。 我想过为它设计一个设计模式,但想知道是否已经有一个。

它如下所示:

我想创建一名足球运动员。

我们有性别。 (男性和女性)。

性别有一个系列类别(例如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这样的最佳实践和原则。将代码实体映射到数据库实体,反之亦然是ORM的责任,它们针对不同的语言和需求(SQL/NOSQL,代码优先/数据库优先等)存在大量的变体。

因此,对于足球运动员和球队的确切情况,我认为数据库正常化是目前所需的。

+0

是的,这是我一起去的。我将使用EntityFramework的asp.net作为工具。 也非常感谢您的反馈。 – jakob

0

为什么你需要的“系列”单独所有属性。如果这不是必要的,我会创造一个“足球运动员”和“联盟”的对象。大概一个足球运动员可以参加一个联赛,但是联盟中可以有很多球员。因此会有“足球先生”和“联盟之间多到一个关系。

Footballer 
{ 
    int FootballerID 
    int age 
    GenderType 
    League 
} 

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

因此,有一个多到一个FootballerID和LeagueID之间的关系。首先,你可以在没有任何球员创造联赛然后,您可以创建一个具有其年龄和性别的足球运动员,然后您可以通过查看他们的年龄和联盟类别中的性别限制,将此足球运动员添加到联盟。一个球队对象也可以很好。

+0

嗯......这里的问题是所有的系列',地区和联赛都是预定义的。 我想我明白你的意思,但是我认为如果这个地区会有更多的地区性限制,我会更加灵活地分开它们。 但是我仍然想说谢谢你的答案。 – jakob