Я пытаюсь сохранить свои данные, но у меня возникают проблемы при разработке схемы, которая будет работать в спящем режиме разумным образом
У меня есть два объекта: канал и пользователь.Пользователь связан с каналом, но во многих отношениях.Он может иметь 5 специальных статусов (и может быть назначен несколько) или быть нормальным.Проблема усложняется тем фактом, что это отношение «многие ко многим» (пользователь может быть в нескольких каналах, а канал имеет несколько пользователей).
Моя идея состоит в том, чтобы иметь отдельные таблицы каналов и пользователей, но иметь третьюбольшая карта стола.Эта большая таблица карт будет выглядеть примерно так:
--------------------------------------------------------------------------
| CHANNEL_ID | USER_ID | STATUS1 | STATUS2 | STATUS3 | STATUS4 | STATUS5 |
--------------------------------------------------------------------------
| 5 | 10 | 0 | 1 | 0 | 0 | 0 |
--------------------------------------------------------------------------
Обратите внимание, что если новый пользователь присоединяется к каналу, он получает новую строку.Однако, если они получают новый статус, их существующая строка изменяется.
Что меня действительно смущает, так это как реализовать что-то подобное в Hibernate.У меня есть что-то подобное, но я так долго с этим играюсь (уже 2 дня), я даже не знаю, что он делает больше.
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "quackbot_user_map", joinColumns = {
@JoinColumn(name = "USER_ID")}, inverseJoinColumns = {
@JoinColumn(name = "STATUS1")})
protected Set<UserDAOHb> status1s;
- Есть ли лучшеспособ сделать это?
- Должен ли я использовать выделенный объект карты, который представляет таблицу и запрос с этим вместо этого?