1: N - отображение двух переменных в N на одну переменную в «1» - PullRequest
0 голосов
/ 30 октября 2018

Мое приложение предлагает групповой или приватный чат. Я различаю эти два в моей БД.

group ( members are in m:n join table )
| id | some info |

private_ch:
| id | user1 | user2 |

message:
| id | ...... | group | private_ch|

Если сообщения принадлежат группе, private_ch имеет значение null и наоборот.

Однако для отображения этого в спящий режим требуется, чтобы две переменные были сопоставлены одной переменной в другой таблице

1008 * например *

@Entity
class converstaion{
    private User userOne;
    private User userTwo;

    @ManyToOne
    @JoinCollumn(name="user1")
    // getter and setter for userOne

    @ManyToOne
    @JoinCollumn(name="user2")
    // getter and setter for userTwo
}

@Entity
class User{
 //
 @OneToMany(mappedBy = "user1")
 private List<Conversation> userOneConversation

 @OneToMany(mappedBy = "user2")
 private List<Conversation> userTwoConversation
}

Как вы можете видеть, для этого потребуется два избыточных Списка разговоров в классе User. Есть ли другой способ, как это сделать, или это плохой дизайн БД (разговорная таблица)? - в таком случае как бы вы подошли к этому?

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...