Я строитель сайта, у меня есть несколько таблиц, и нормально ли строить класс и создавать один его объект на основе этой таблицы? У меня есть учитель таблицы (ID, Username) и класс, основанный на нем получил giveMark()
, editMark()
и т.д. Еще один студент (ID, NAME) таблица, с getMarks()
, getMissingHours()
и т.д. Теперь, так как есть N: M отношения между учениками и учителями, у меня есть таблица link_teacher_student (ID, TEACHED_ID, STUDENT_ID), которая скорее является «вспомогательной» таблицей. Должен ли я создать для него класс/объект?Можно ли создать класс/объект для таблицы базы данных?
ответ
Да. Это не совсем нормально, так это отличная идея отделить ваш уровень данных (или модель) от остальной части вашего кода.
Это означает, что вы можете написать меньше кода, чтобы получить больше результатов, поскольку вам не нужно повторять один и тот же код повсюду, и это означает, что вам нужно только беспокоиться об обновлении одного фрагмента кода, когда вам нужно измените свою модель каким-то образом.
Это зависит от того, сколько функциональности вам нужно от вашего кода. Если ваше веб-приложение будет требовать множество функций на основе разных типов пользователей, я бы создал для них другую модель и контроллер. Если нет никакой разницы в функциональности между пользовательскими типами, вы можете просто использовать один унифицированный класс, используя еще несколько методов для дифференциации.
Я бы также добавил столбец teacher_id
на стол студента - вам не нужно создавать целую новую таблицу для сопоставления отношения.
No, у вас не должно быть объекта для таблицы link_teacher_student
. This is common thing to do in a RDBMS structure, but not in an OOP model. То же relationsip в модели ООП, было бы просто:
class Teacher {
protected $students = array();
}
class Student {
protected $teachers = array();
}
Вы бы затем использовать DataMapper инициализировать этот массив при выборке в Teacher
или Student
, например ваш DAO запросит у преподавателя и join the students, а затем Mapper будет create Student objects и заполнит их в этом массиве в качестве учителя.
Что вы можете сделать, это сделать $students
или $teachers
в Repositories и дать им поиск Методы запроса таблицы поиска, например.
class Teacher
…
public function __construct($studentsRepository)
{
$this->students = $studentRepository;
}
public function getStudents()
{
return $this->students->findByTeacherId($this->id);
}
}
class StudentRepository
…
public function findByTeacherId($teacherId)
{
foreach ($this->dao->select('SELECT …', $teacherId) as $student) {
$students[] = $this->studentBuilder->build($student);
}
return $students;
}
}
- 1. Можно ли изменить механизм таблицы базы данных после создания таблицы?
- 2. Можно ли использовать Linq для ALTER таблицы базы данных?
- 3. Можно ли создать индекс для временной таблицы
- 4. Можно ли скрывать таблицы базы данных AS/400?
- 5. Можно ли выбрать определенные элементы таблицы базы данных?
- 6. Можно ли скопировать таблицы из одной базы данных в другую?
- 7. Можно ли прослушивать обновление реляционной базы данных?
- 8. HBM2DDL - Создать представление базы данных вместо таблицы?
- 9. Создать синтаксис базы данных и таблицы
- 10. Как создать концепцию этой таблицы базы данных?
- 11. таблицы, таблицы и таблицы базы данных, базы данных
- 12. Создать многомерный массив из таблицы базы данных
- 13. Как создать таблицу таблицы базы данных
- 14. PHP - Создать меню из таблицы базы данных
- 15. Создать ссылочный номер из таблицы базы данных
- 16. Таблицы реляционной базы данных
- 17. Как создать таблицы базы данных (MySQL) для нескольких пользователей?
- 18. как создать таблицы базы данных для статистики загрузки файлов
- 19. Префикс таблицы базы данных
- 20. Можно ли иметь две разные базы данных для одного проекта?
- 21. Таблицы ссылок базы данных
- 22. Можно ли подстроить поля базы данных?
- 23. Хорошо ли объединить две таблицы базы данных?
- 24. Дизайн таблицы базы данных
- 25. Можно ли оптимизировать эти вызовы базы данных?
- 26. Таблицы базы данных для записей другой таблицы?
- 27. Таблицы базы данных для изображений и видео
- 28. Создание таблицы базы данных для больших данных
- 29. Таблицы базы данных для управления пользователями
- 30. Можно ли создать один sql-скрипт для создания базы данных и заполнения ее таблицами?
http://ru.wikipedia.org/wiki/Object-relational_mapping –