Я в настоящее время использую NotORM PHP библиотека в моем проекте. Для правильной работы библиотека требует от вас принятия следующего соглашения об именах в базе данных, на которой вы собираетесь его использовать:
{
Tables => table
Primary keys => id
Foreign keys => table_id (target table)
Table prefix => (none)
}
Если соблюдается это соглашение, библиотека позволяет вам (помимо прочего) делать следующее:
//$db NotORM object
$computer = $db->computers[0]; // where 0 is computers_id (int)
//**this line below is what I want to focus on for this question**
$employee = $computer->employees;
echo $employee["name"];
Теперь выше будет предполагать, что у нас есть следующие таблицы, связанные один-ко-многим:
computers => {
id
...
employees_id // fk
}
employees => {
id
...
}
Строка, которую я выделил во втором блоке кода, позволяет нам перейти от ссылочной таблицы к ссылочной таблице с помощью внешнего ключа.
Если бы у нас были вышеупомянутые таблицы, связанные взаимно-однозначным отношением (без каких-либо внешних ключей, которые можно было бы найти ни в одной из таблиц), как бы мы достигли той навигационной способности, показанной выше? Правильно ли я предполагаю, что у нас должна быть двунаправленная навигация при наличии отношений один-к-одному?
Задача ещё не решена.
Других решений пока нет …