Hallo Community,
ich möchte folgendes Szenario abbilden.
Ein Fahrzeug, kann auf unterschiedlichen Rennstrecken eingesetzt werden und bei unterschiedliches Wetterverhältnissen gefahren werden. Die Performance ist abhängig vom Fahrzeug, Wetter, Rennstrecke immer unterschiedlich.
Ich möchte eine Datenbank anbinden aus der die Daten stammen und die Daten als JSON-Objekte der Welt zur Verfügung stellen. Beim modellieren sind mir jedoch ein paar Dinge aufgefallen welche mich an meinem Entwurf zweifeln lassen.
Mein erster Entwurf als UML
An sich super popelig, es gibt die abstrakte Klasse Fahrzeug von der dann die konkreten Fahrzeuge erben. Zusätzlich habe ich die Klassen Rennstrecke und Wetter. Die Klasse Performance hat eine Referenz auf Fahrzeug, Wetter und Rennstrecke.
Wenn ich ein Fahrzeug ausgeben möchte sollen auch die Rennstrecken, die Wettersituationen und die dazugehörige Performance ausgegeben werden. Daher hat die Klasse Fahrzeug eine Liste an Performances.
Indirekt kann ich über Performance ermitteln, welche Rennstrecken vom Auto gefahren werden können und bei welchem Wetter ein Fahrzeug gefahren werden kann. Wäre es trotzdem sinnvoll:
- dem Fahrzeug eine zusätzliche Liste mit Wetter-Objekten zu geben bei denen es gefahren werden kann?
- dem Fahrzeug eine zusätzliche Liste mit Rennstrecken zu geben welche es befahren kann?
- der Rennstrecke eine Liste an Fahrzeugen zu geben welche auf Ihr fahren können?
- .....
oder führen zu viele Referenzen eher zu Komplikationen und ich sollte alles indirekt über Performance ermitteln.
Mein Datenmodell der Datenbank sieht wie folgt aus und ich glaube das macht einen soliden Eindruck:
Spannender ist dann wieder die JSON-Repräsentation:
Was ist hier zu bevorzugen?
[CODE lang="json" title="Popeliges Format"]{
"id":1,
"name":"Trabi",
"performance":[
{
"wetter":{
"id":1,
"name":"Sommer"
},
"rennstrecke":{
"id":1,
"name":"Hockenheim Ring"
},
"maxGeschwindikgeit":5,
"rundenZeit":3,
"verbrauch":7
}
]
}[/CODE]
Hier müsst man dann halt wieder indirekt die passenden Strecken und möglichen Wetter ermittlen.
Oder macht ein eher "verschachteltes" Repräsentation Sinn z.B: ?
Das verschachtelte ist irgendwie besser lesbar, ich hab ein Array wo ich alle Rennstrecken drin hab und alle Wetter die dieses Auto auf der Rennstrecke schafft.
Also um die Frage nochmal auf den Punkt zu formulieren: "Können zusätzliche Referenzen (wenn auch unnötig) im Java-Code sinnvoll sein?. Nach welchen Kriterien sollte ich das JSON-Objekt entwerfen?
Viele Grüße
Albus
ich möchte folgendes Szenario abbilden.
Ein Fahrzeug, kann auf unterschiedlichen Rennstrecken eingesetzt werden und bei unterschiedliches Wetterverhältnissen gefahren werden. Die Performance ist abhängig vom Fahrzeug, Wetter, Rennstrecke immer unterschiedlich.
Ich möchte eine Datenbank anbinden aus der die Daten stammen und die Daten als JSON-Objekte der Welt zur Verfügung stellen. Beim modellieren sind mir jedoch ein paar Dinge aufgefallen welche mich an meinem Entwurf zweifeln lassen.
Mein erster Entwurf als UML
An sich super popelig, es gibt die abstrakte Klasse Fahrzeug von der dann die konkreten Fahrzeuge erben. Zusätzlich habe ich die Klassen Rennstrecke und Wetter. Die Klasse Performance hat eine Referenz auf Fahrzeug, Wetter und Rennstrecke.
Wenn ich ein Fahrzeug ausgeben möchte sollen auch die Rennstrecken, die Wettersituationen und die dazugehörige Performance ausgegeben werden. Daher hat die Klasse Fahrzeug eine Liste an Performances.
Indirekt kann ich über Performance ermitteln, welche Rennstrecken vom Auto gefahren werden können und bei welchem Wetter ein Fahrzeug gefahren werden kann. Wäre es trotzdem sinnvoll:
- dem Fahrzeug eine zusätzliche Liste mit Wetter-Objekten zu geben bei denen es gefahren werden kann?
- dem Fahrzeug eine zusätzliche Liste mit Rennstrecken zu geben welche es befahren kann?
- der Rennstrecke eine Liste an Fahrzeugen zu geben welche auf Ihr fahren können?
- .....
oder führen zu viele Referenzen eher zu Komplikationen und ich sollte alles indirekt über Performance ermitteln.
Mein Datenmodell der Datenbank sieht wie folgt aus und ich glaube das macht einen soliden Eindruck:
Spannender ist dann wieder die JSON-Repräsentation:
Was ist hier zu bevorzugen?
[CODE lang="json" title="Popeliges Format"]{
"id":1,
"name":"Trabi",
"performance":[
{
"wetter":{
"id":1,
"name":"Sommer"
},
"rennstrecke":{
"id":1,
"name":"Hockenheim Ring"
},
"maxGeschwindikgeit":5,
"rundenZeit":3,
"verbrauch":7
}
]
}[/CODE]
Hier müsst man dann halt wieder indirekt die passenden Strecken und möglichen Wetter ermittlen.
Oder macht ein eher "verschachteltes" Repräsentation Sinn z.B: ?
JSON:
{
"id":1,
"name":"Trabi",
"rennstrecke":[
{
"id":1,
"name":"Hockenheim Ring",
"wetter":[
{
"id":1,
"name":"sommer",
"performance":{
"maxGeschwindigkeit":7,
"rundenZeit":8,
"verbrauch":2
}
}
]
}
]
}
Das verschachtelte ist irgendwie besser lesbar, ich hab ein Array wo ich alle Rennstrecken drin hab und alle Wetter die dieses Auto auf der Rennstrecke schafft.
Also um die Frage nochmal auf den Punkt zu formulieren: "Können zusätzliche Referenzen (wenn auch unnötig) im Java-Code sinnvoll sein?. Nach welchen Kriterien sollte ich das JSON-Objekt entwerfen?
Viele Grüße
Albus