2015-01-29 2 views
0

Мне было интересно, есть ли разумный способ иметь несколько общих столбцов для разных таблиц в CakePhP. Я мог бы использовать общую таблицу, имеющие отношения к этим таблицам, но есть поведение или подобный механизм, для которого я могу иметь:Общие столбцы для нескольких таблиц в CakePHP

Пользователи Клиентов CommonPersonalFields

и имеют некоторые общие поля в третьей таблице, неправдоподобное автоматически пирогом. Таким образом, вы можете также иметь общие представления для этих полей, включенных в другие представления таблиц.

+0

Я интерпретирую ваш вопрос следующим образом: «Вот стандартный способ, которым все это делают, и способ, который рекомендуется буквально повсюду, но как я могу сделать это каким-то другим, нестандартным способом?» Если это не так, вы можете уточнить, каков ваш вопрос на самом деле. – Dave

+0

Это способ увидеть это. С альтернативным способом вы могли бы не устанавливать отношения напрямую и лучше использовать код повторного использования. Может быть, я слишком смущаю это, и связанная модель - это путь. Но в этом случае следует добавить столбец с именем таблицы, т. Е. В CommonFields есть related_table_id и related_table_name? – cpl

+0

Где сейчас находится этот процесс? В частности, завершена ли разработка базы данных? Таблицы не выглядят нормализованными. Является ли CommonPersonalFields EAV? CakePHP работает лучше всего с нормализованной моделью базы данных (с дополнительным предостережением о том, что у вас нет составного первичного ключа.) Если ваш проект является окончательным, просьба дать более подробную информацию о столбцах и образцах данных CommonPersonalFields, относящихся к двум другим таблицам. – AgRizzo

ответ

0

Это делается с Model Associations в CakePHP. В этом случае ваши модели будут User, Customer и PersonalData, а ваши ассоциации: User hasOne PersonalData, Customer hasOne PersonalData, и если вы хотите, чтобы ассоциация была связана с обоих направлений, PersonalData belongsTo User и PersonalData belongsTo Customer.

+0

Возможно, мое описание было неясно, я havo, чтобы признать это, но это именно то, что я имел в виду со связанной таблицей. Есть ли альтернатива? – cpl

+0

Нет, насколько я когда-либо слышал. –

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