Это мой стол, GameAdmin
:
game_id company_id user_id
1 5 NULL
1 5 NULL
1 NULL 2
1 NULL 3
1 NULL 3
Он связывает игры с сущностями, которые могут их редактировать (либо компанией, либо пользователем).
У меня есть индекс UNIQUE
для всех столбцов, но, как вы можете видеть, он работает не так, как ожидалось.
Что не так? Это из-за NULL
с?
Я знаю, что могу заставить это работать, изменив структуру на:
game_id admin_type admin_id
1 company 5
1 company 5
1 user 2
1 user 3
1 user 3
Но это не совместимо с моей настройкой JPA / Hibernate или, по крайней мере, очень неудобно, потому что не позволяет мне устанавливать отношения следующим образом:
@ManyToOne(optional=true)
private User user;
@ManyToOne(optional=true)
private Company company;