Ich habe zwei Tabellen, Team und Player (eins zu viele).Ist es in Ordnung, wenn zwei Tabellen sich gegenseitig referenzieren?
Meine erste Frage, ist es eine schlechte Übung, dass beide Tabellen sich gegenseitig so referenzieren?
Team: (id (pk), name, captain_id (fk))
Player: (id (pk), name, team_id (fk))
Ich bin mit JPA und mit dem folgende Setup überwintert.
In dem Moment, in dem ein neues Team erstellt wird, wird die ID des Players, der es erstellt, als Parameter übergeben. Es funktioniert gut, aber es fühlt sich nicht richtig an, es manuell zu tun.
public void createNewTeam(Player player, Team team){
Set<Player> players = new HashSet<Player>();
Team team = new Team("Cowboys", player.getId(), players); //player.getId is the captain()
player.setTeam(team);
players.add(player);
PersistenceUtil.merge(team);
}
Gibt es eine Möglichkeit, die Entitäten irgendwie zu ändern, um dies automatisch zu tun? Oder muss ich die Tabellen ändern?
Ich habe versucht, die Objekte mit Gson in JSON zu konvertieren, aber ohne Erfolg. Ich denke, es hat etwas mit Zirkularreferenzierung zu tun. (ja ich bin ein Noob in zu tief!)
Natürlich ist es in Ordnung, eine 1-N BIDIREKTIONALE Beziehung zu haben, deshalb existiert die Beziehung! Setze beide Seiten der Relation –