Проблема с идентификатором - он может принимать по сути любое значение. продумать логику заполнения промежуточной таблицы