(表示在C#)这是最有可能的一个为你性感的DBA那里:建模通用关系数据库
怎么会借此我在有一个领域我effieciently模型关系数据库定义“SportType”的“Event”表?
这个“SportsType”字段可以保存一个链接到不同的运动表E.g. “FootballEvent”,“RubgyEvent”,“CricketEvent”和“F1事件”。
这些运动表中的每一个都有特定于该运动的其他字段。
我的目标是能够根据需要在未来通用添加运动类型,但将运动特定事件数据(字段)作为我的事件实体的一部分。
是否有可能使用一个ORM,如NHibernate/Entity framework/DataObjects.NET这会反映这种关系?
我已经一起引发一个快速的C#示例来表达我的意图在更高层次上:
public class Event<T> where T : new()
{
public T Fields { get; set; }
public Event()
{
EventType = new T();
}
}
public class FootballEvent
{
public Team CompetitorA { get; set; }
public Team CompetitorB { get; set; }
}
public class TennisEvent
{
public Player CompetitorA { get; set; }
public Player CompetitorB { get; set; }
}
public class F1RacingEvent
{
public List<Player> Drivers { get; set; }
public List<Team> Teams { get; set; }
}
public class Team
{
public IEnumerable<Player> Squad { get; set; }
}
public class Player
{
public string Name { get; set; }
public DateTime DOB { get; set;}
}
链接到DO4论坛描述这种情况下一个话题:http://forum.x-tensive.com/viewtopic.php ?F = 29&T = 5820 – 2010-04-01 03:03:43