Я столкнулся с чем-то, что казалось простым раньше, но я снова почесал себе голову. У меня есть таблица для пользователей:MySQL: два внешних ключа в одной таблице, относящихся к другой таблице
user_id (PK) | username| email | something
... и таблицу для «мнения» для того, когда один пользователь просмотрел другой пользователь:
view_id (PK) | viewer_id | viewed_id | view_date
«viewer_id» и «viewed_id», оба равны user_ids, что позволяет мне искать отдельно для случаев, когда пользователь был зрителем или просматриваемым.
Первоначально я думал, что оба эти столбца будут внешними ключами, но создав таблицы в моем файле schema.yml (я использую Doctrine 1.2) и задал два отдельных внешних отношения (по одному для каждого столбца), это кажется, что Doctrine учитывает только зарегистрированные внешние отношения между этими двумя таблицами (user_id> viewer_id).
Теперь я запутался, правильно ли это поведение MySQL, проблема в доктрине или проблема в том, как я приближаюсь к этому, или не о чем беспокоиться! Может ли быть два отдельных внешних ключа из одной таблицы, сопоставленной с тем же столбцом в другой таблице? Это даже логично, учитывая, что JOIN все равно предоставит мне доступ к «представлениям» через user_id? У меня это неправильно?
Спасибо за ваше время.
EDIT - Файл схемы:
User:
relations:
View: {class: View, local: user_id, foreign: viewer_id, type: many, foreignType: one, alias: View, foreignAlias: User}
View: {class: View, local: user_id, foreign: viewed_id, type: many, foreignType: one, alias: View, foreignAlias: User}
... only difference is viewer_id/viewed_id
Можете ли вы показать эту часть файла схемы? Возможно, вы не настроили его правильно. –
Добавлен файл схемы. – Tom