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