足球/足球软件设计模式

football / soccer software design pattern

一道基础题。

想想 football/soccer。 我想为它做一个设计模式,但想知道是否已经有一个了。

结果如下:

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

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

一个性别有一个系列类别(例如 19 岁以下的年轻人,18 岁以下的年轻人等)。

该系列类别位于某个区域(或任何状态)。

并且该区域有其系列名称(例如系列 1、系列 2、分区 1 等)。

例如,我想制作女性,Senior,她在伯明翰踢球,并且在甲级联赛。

我想把它映射到数据库中,但我想遵循一个软件设计模式,但我不知道是否有用于此目的的软件设计模式。

我的尝试是这样的:

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
}

为什么需要"Series"的所有属性分开。如果这不是必需的,我会只创建一个 "Footballer" 和一个 "League" 对象。也许一个足球运动员可以在一个联赛中踢球,但一个联赛中可以有很多足球运动员。因此 "Footballer" 和 "League.

之间存在多对一关系
Footballer
{
    int FootballerID
    int age 
    GenderType
    League 
}

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

所以FootballerID和LeagueID之间是多对一的关系。首先,您可以创建一个没有 it.Then 中任何足球运动员的联赛,您可以创建一个带有年龄和性别的足球运动员,然后您可以通过在联赛类别中检查他们的年龄和性别限制将此足球运动员添加到联赛中。不过,团队对象也不错。

我认为你应该使用规范化原则来设计你的数据库(在这里阅读更多 - http://www.studytonight.com/dbms/database-normalization.php

关于软件模式 - 没有适合您情况的确切模式。但是使用像 SOLID 这样的最佳实践和原则。将代码实体映射到数据库实体,反之亦然是 ORM 的责任,它们针对不同的语言和要求(SQL/NOSQL、code-first/database-first 等)存在大量变体。

因此,对于您与足球运动员和球队的具体情况,我认为目前您只需要数据库标准化。