2016-08-13 5 views
1

У меня есть три объекта с отношением «многие-ко-многим» между ними User, Project и Task. Я хочу объединить три таблицы в одну таблицу collaborator, которая содержит только идентификаторы трех таблиц.Соедините три таблицы в таблицу соединений

Но я не понимаю, как я могу присоединиться к ним с помощью @JoinTable плюс, как я могу управлять каскадными типами.

Любая помощь будет оценена. Спасибо P.S: Если есть какая-либо другая идея, то радушна.

+0

вы хотите присоединиться или создать таблицу с именем 'collaborator'? –

+0

Из того, что вы объясняете, я понимаю, что Пользователь может иметь несколько проектов, а также проект может иметь несколько пользователей. То же самое и между проектами и задачами. Но, в конце концов, пользователь связан с задачей через проект, не так ли? Я думаю, что наличие другой промежуточной таблицы будет недостатком вашего дизайна. Если вы хотите, чтобы он занимался чистым ремонтом, я предлагаю вам реализовать представление БД, которое позволит вам не раз писать сообщения о присоединении. –

+0

@ZaidMirza, «сотрудник» - это имя таблицы соединений. –

ответ

3

Вы можете выбрать из динамичной временной таблицы

select * from (
    select user.id, Project.id, Task.id 
    inner join Project on user.join_key = Project.join_key 
    inner join Task on task.join_key = = Project.join_key 
) collaborator 
+0

это достаточно просто для меня. Спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^