ої контролером. Наприклад, якщо у вас є гостьова книга, то контролер запитує у моделі останні десять записів; модель їх повертає; контролер передає ці дані увазі. Контролер також може за допомогою моделі додати нові записи і оновити або видалити існуючі. Модель безпосередньо пов'язана тільки з контролером і не містить функцій роботи з поданнями. p> Одним з найважливіших модулів Kohana є ORM, невід'ємна частина будь-якого серйозного фреймворку. ORM <# "justify"> Побудувавши реляційну модель бази даних, засновану на моделі сутність-зв'язок, видно, що є безліч зв'язків різного типу між таблицями, тому для роботи з базою даних вибрано модуль ORM (рис.14).
На основі ER-моделі створені класи моделі:
В· Model_Test - модель містить інформацію про тест, таку як В«НазваВ», В«ЧасВ» і id курсу, до якого тест відноситься.
В· Model_Testresult - модель зберігає результати тестування.
В· Model_Question - зберігає питання до тестових завдань. У одного тесту може бути багато питань.
В· Model_Answer - варіанти відповідей до питань тесту.
В· Model_Course - модель містить інформацію про курси. Крім назви та описи курсу, є інформація про автора і категорії, які є вторинними ключами.
В· Model_Coursescategor - категорії курсів, наприклад В«ПрограмуванняВ», В«Бази данихВ». До однієї категорії відноситься багато курсів.
В· Model_Lection - лекційні завдання. Мають вторинний ключ id курсу.
В· Model_Message - зберігає листування користувачів.
В· Model_New - зберігає новини, які опубліковує адміністратор.
В· Model_Role - містить ролі користувачів: admin, login, tutor.
В· Model_User - містить інформацію про користувачів.
В· Model_Usercourse - зберігає номер студента і номер курсу на який він записаний.
В
Рис.14. ER діаграма моделі сутність зв'язок
Кохана підтримує чотири типи об'єктних відносин: belongs_to, has_many, has_many "through" and has_one. Зв'язок В«багато до одногоВ», В«один-до-багатьохВ», В«багато-до-багатьох іВ« один-до-одного В»відповідно. p align="justify"> Зв'язок В«багато-до-одногоВ», коли одна модель належить іншій. Багато курсів відносяться до однієї категорії. Приклад зв'язку В«багато-до-одногоВ» у Лістингу 16. p align="justify"> Лістинг 16. Приклад моделі Model_Course ...