Во-первых, я бы хотел сказать, что я новичок в ORM. Я никогда не использовал ORM в своей жизни и достиг в своей повседневной работе момента, когда мне нужно создать несколько сумасшедших продвинутых отношений, которые, как я считаю, могут помочь мне в Datamapper Overzealous Edition, когда я использую Codeigniter.
В моей базе данных есть следующие таблицы:
Пользователи
проекты
клиенты
задачи
Вот мои желаемые отношения между таблицами;
- Пользователь может принадлежать ко многим проектам.
- Проект может иметь несколько задач, но может иметь только одного клиента.
- У клиента может быть много пользователей и много проектов
- Задача может иметь только один проект
Я попытался настроить свои модели в каталоге моделей, как указано в документации, название модели без s в конце, поэтому для пользователей у меня есть модель user.php и т. Д.
Я знаю, что документация великолепна, но я просто не могу ее правильно понять, хотя она, очевидно, очень проста. Я знаю, что вы создаете экземпляр модели, например, $ u = new User (); внутри вашего контроллера, но мой вопрос - установить отношения внутри моделей.
Как мне настроить мои модели так, чтобы они имели вышеуказанные отношения, например, когда я выбираю задачу, я вижу, к какому проекту она относится, и целую кучу информации из связанных таблиц базы данных.
Я заметил, что в документации вы используете следующую модель проекта, которая должна указывать, что она может иметь более одной задачи для проекта; var $has_many = array('task')
Это все, что нужно? Это так же просто, как определить переменные $ has_many и $ has_one и вставить имя ассоциированной модели в массив?