This is probably one for the sexy DBAs available:

Wouldso would I effieciently model a relational database whereby I've got a area within an "Event" table which defines a "SportType"?

This "SportsType" area holds a hyperlink to various sports tables E.g. "FootballEvent", "RubgyEvent", "CricketEvent" and "F1 Event".

All these Sports tables have different fields specific to that particular sport.

Let me have the ability to genericly add sports types later on as needed, yet hold sport specific event data (fields) included in my Event Entity.

Can you really make use of an ORM for example NHibernate / Entity framework / DataObjects.Internet which may reflect this type of relationship?

I've tossed together a fast C# example to convey my intent in a greater level:

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;}
}

football Event code completion f1 Event code completion

DataObjects.Net supports automatic mappings for open generics. Some particulars about this are referred to here.

This can be done by getting all of the Event types inherit from an abstract Event base class. This seem sensible in my experience because all of the occasions share some common qualities: date, venue, etc. Use a table per concrete class or table per subclass technique to keep objects inside a relational database. Here are a few links to articles explaining inheritance mapping with NHibernate: