我目前具有用于超运行事件的日历和结果数据库的附加数据模型。我的问题围绕着如何最佳地设置课程表和关系(事件的所有不同距离)和比赛(使用特定课程的事件实例)的关系。我的模型站点是calendar.ultrarunning.com,尽管我将以不同的方式构建某些功能。
事件 有关(通常)重复事件的一般信息 -一个活动可以有许多课程(一对多) -一场比赛可以有很多比赛(一对多)
课程 活动可以使用的有关课程的所有信息(例如50英里,50公里,100英里) -在许多比赛中都可以使用一门课程(例如,每年在某项赛事中使用50英里的课程)
赛车 使用COURSES表中的课程之一,在特定日期的事件的特定实例。 -一场比赛可以开设许多(?)课程(这是我有疑问的事情之一!!)-选修课可以进行多对多
结果 特定比赛的结果,包括每个跑步者的时间,位置等。 -一场比赛有很多结果 -(或与课程和种族相关的中间表,请参见下面的问题)
跑步者 有关参加比赛并获得结果的每个跑步者的信息。 -跑步者可以有很多结果
现在我正在考虑的是如何处理将数据分为课程和种族。
场景1 : 在#1的情况下,我可以创建一个中间表-可能包含日期-该特定实例(特定日期的特定课程)的结果与之相关吗?在这种情况下,日期可能必须同时在RACES和此中间表中?也许不在RACES中?
方案2 : 在第二名的情况下,我会将每个结果与RACES中的一场比赛相关联,而该比赛只有一个方向。很容易。
在场景1中,优点可能是更容易创建种族,并且我可以针对该特定日期的事件的独特之处进行描述。
在场景2中,为一个事件的实例创建4-5个不同的种族会更加复杂,这些种族除了日期外没有其他共同点。
方案3 有了完全分层的结构,就很容易理解这种关系,因为每个种族都有一个(或许多?)路线,而这些路线又属于一个事件。结果显然与比赛有关。
以下是我计划中与课程和种族有关的显示。 一种。所有即将举行的比赛的列表,以“活动”中的事件名称为标题,但显示该日期与RACES的每项比赛到“课程”表的距离。 b。活动页面活动详细信息下方的即将进行的比赛和过去的比赛。 C。课程的详细信息页面,列出该课程的所有即将进行的比赛和过去的比赛。 d。事件的结果页面。 e。特定种族实例的结果页面。 F。在特定课程中按性别和年龄段显示效果最佳的视图。 G。每个距离,表面等的顶部列表(年度和所有时间)。
哪种方法最好地实现课程,种族和结果之间的关系?