Hi, also ich hab mir hier nicht alles durchgelesen, bin aber grad selber dabei eine Liga zu coden. Mein Ansatz war es sie so flexibel wie möglich aufzubauen, ohne Spezialevents wie Cups usw.
meine Struktur:
User Tabelle
id, nick, email, password, etc
Game Tabelle
id, name, short
Liga Tabelle
id, name, short, gameid, typ (1on1, Teamliga), Anzahl Maps, Mappool
Teams
id, name, Registrier Datum, typ (Mutterteam, Subteam), etc
User Tabelle für die Ligen
id, userid, gameid, ligaid, punkte, etc
Team Tabelle für die Ligen
id, teamid, gameid, ligaid, punkte, etc
Match Tabelle
id, gameid, ligaid, teamid bzw userid des Fordernden, teamid bzw userid des Geforderten, time, map1, map2, die passenden Ergebnisse dazu, winteamid, Zusatzinfos wie: angenomme Forderung, Match gespielt oder nicht, Match abgelehnt.
Zusätzlich zu der Match Tabelle hab ich noch eine Matchrequest Tabelle gemacht, die aber optional ist. Sie soll dazu dienen, dass ein Script oder ein Admin den Request überprüfen kann und ihn freigeben oder löschen kann. Zum Beispiel, wenn ein Team zuviele Penalty Points usw hat.
Es ist nicht ganz so einfach das alles zu erklären, aber von der Grundstruktur her dürfte es alles ziemlich dynamisch sein. Ich hab bei den Ligen und bei der User bzw Team Tabelle für die Ligen noch zusätzliche Infos eingebaut, wie zum Beispiel den Status des Spielers/Teams, also ob aktiv oder nicht. Weiterhin hab ich ein paar Gimmicks eingebaut, wie zum Beispiel eine User bzw Team History, also eine Auflistung der Ereignisse, wie zum Beispiel wenn ein User/Team einer Liga joinen will, eine Liga verlässt oder ein Team umbenannt wird usw.
Wenn man nur ein kleines Ligascript haben will, für private kleinere Lans, oder auch für eine kleine Internet Liga sollte es natürlich nicht so kompliziert sein, aber mein projekt soll halt etwas grösser sein, Vorbild: ESL :]
Bei Fragen kannst dich ja bei mir melden, hab bloss im Moment keine Flatrate, also dauert das mit dem antworten immer etwas :]
//Ben