Дело:
Я действительно застрял в размышлениях о том, как правильно связать две таблицы в моей модели данных, рассмотрим этот пример (который абстрагирован от проблемы)
Скажи, что у меня есть:
- некоторая модель под названием ' Attachment ', которая содержит 'attachment_id', 'attachment_title', .... и т. Д.,
- и другая модель с именем ' Вопрос ', которая содержит 'question_id', 'attachment_id' (иностранный), 'question_option1', 'question_option2', 'question_option2', 'correct_answer' и т. Д.
Я уже знаю, что каждый «вопрос» может иметь привязанность к вопросу, поэтому у нас пока есть следующие отношения:
в модели вопроса:
var $belongsTo = array(
'Attachment' => array(
'className' => 'Attachment',
'foreignKey' => 'attachment_id',
'conditions' => '',
'fields' => '',
'order' => '',
),
и у меня в приложении модель:
var $hasOne = array(
'Question' => array(
'className' => 'Question',
'foreignKey' => 'attachment_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
Проблема:
Затем возникло новое требование: поместите изображения для каждого параметра в «Вопрос», чтобы вместо этого мы могли отображать изображения, а не текст, что означает, что мы добавляем новые строки в таблицу «Вопрос» (по крайней мере, то, что я сделал) который называется 'question_option1_attachment', 'question_option2_attachment', 'question_option3_attachment', и эти ячейки будут содержать внешний ключ, который указывает на attachment_id.
конечно, это не сработало для меня:
'foreignKey' => array('attachment_id', 'question_option1_attachment', 'question_option2_attachment', 'question_option3_attachment') ...
Вопрос:
Как связать один вопрос с множеством строк, указывающих на разные внешние ключи?
что вы предлагаете, мне нужно как-то переопределить всю ассоциацию?