Hallo,
ich hoffe dass sich einige etwas unter dem Threadtitel vorstellen können, wenn nicht tu mir Leid
Zunächst einmal beschreibe ich mein Vorhaben:
Ich habe Chaträume und Spieler, wobei ein Spieler in beliebig vielen Chaträumen aktiv sein kann (lesen) und ein Chatraum entsprechend von beliebig vielen Spielern benutzt werden kann. Die Spieler können in mehreren Chaträumen gleichzeitig aktiv sein! Weil ich lieber den Arbeitsspeicher als Rechenleistung beanspruchen möchte, habe ich mir gedacht, dass Chaträume die aktiven Spieler verwalten. Das hätte natürlich zur Folge, dass Datensätze doppelt vorhanden wären, da zum Beispiel die Standardchannel von 90% der ~150 User genutzt werden würden. Im Zweifesfall könnte man die Standardchannel umkehren, aber mir geht es nun um Folgendes:
Es handelt sich um ein Minecraft Plugin und dort erhalte ich, sobald ein Spieler in den Chat postet, lediglich ein Spieler-Objekt, aus welchem ich keine Informationen bezüglich des Chatraums herauslesen kann. Ich dachte also zunächst ein eine HashMap, die für jeden aktiven Spieler eine entsprechende ChatSpieler Referenz enthält. Anschließend würde ich aus dem Spieler den aktiven Chatraum auslesen und anhand dessen Liste die Nachricht an die jeweiligen Spieler weiterleiten.
Mich verunsichert nun die Dopplung der Datensätze, da man datenbanktechnisch eine zusätzliche Spielertabelle einrichten würde, die über Indizes angesprochen wird. So hätte ich in der HashMap statt den ChatPlayern dann nur noch einen Integer, über welchen ich aus einem entsprechenden Array dann den ChatPlayer erhalte. So gäbe es nur eine Liste, in welcher die einzelnen ChatPlayer referenziert sind, aber lohnt sich dieser Aufwand?
Ich habe zusätzlich einen Überblick über mein Gesamtvorhaben gegeben, da es möglicherweise bessere Lösungen gibt
Bin um jeden Rat dankbar, da mir sehr viel an der Optimierung meiner Programme liegt.
ich hoffe dass sich einige etwas unter dem Threadtitel vorstellen können, wenn nicht tu mir Leid
Zunächst einmal beschreibe ich mein Vorhaben:
Ich habe Chaträume und Spieler, wobei ein Spieler in beliebig vielen Chaträumen aktiv sein kann (lesen) und ein Chatraum entsprechend von beliebig vielen Spielern benutzt werden kann. Die Spieler können in mehreren Chaträumen gleichzeitig aktiv sein! Weil ich lieber den Arbeitsspeicher als Rechenleistung beanspruchen möchte, habe ich mir gedacht, dass Chaträume die aktiven Spieler verwalten. Das hätte natürlich zur Folge, dass Datensätze doppelt vorhanden wären, da zum Beispiel die Standardchannel von 90% der ~150 User genutzt werden würden. Im Zweifesfall könnte man die Standardchannel umkehren, aber mir geht es nun um Folgendes:
Es handelt sich um ein Minecraft Plugin und dort erhalte ich, sobald ein Spieler in den Chat postet, lediglich ein Spieler-Objekt, aus welchem ich keine Informationen bezüglich des Chatraums herauslesen kann. Ich dachte also zunächst ein eine HashMap, die für jeden aktiven Spieler eine entsprechende ChatSpieler Referenz enthält. Anschließend würde ich aus dem Spieler den aktiven Chatraum auslesen und anhand dessen Liste die Nachricht an die jeweiligen Spieler weiterleiten.
Mich verunsichert nun die Dopplung der Datensätze, da man datenbanktechnisch eine zusätzliche Spielertabelle einrichten würde, die über Indizes angesprochen wird. So hätte ich in der HashMap statt den ChatPlayern dann nur noch einen Integer, über welchen ich aus einem entsprechenden Array dann den ChatPlayer erhalte. So gäbe es nur eine Liste, in welcher die einzelnen ChatPlayer referenziert sind, aber lohnt sich dieser Aufwand?
Ich habe zusätzlich einen Überblick über mein Gesamtvorhaben gegeben, da es möglicherweise bessere Lösungen gibt
Bin um jeden Rat dankbar, da mir sehr viel an der Optimierung meiner Programme liegt.