Таблицы в БД и классы.

  • Автор темы Автор темы Camillo
  • Дата начала Дата начала

Camillo

Новичок
Таблицы в БД и классы.

Начал потихоньку осваивать ООП и столкнулся с проблемой.

Перед тем, как начать осваивать ООП - я почитал туториалы на разные PHP фреймворки.

Очень распространен подход расширения класса фреймводка собственным классом, "привязанным" к таблице в БД;
Например, есть таблица с пользователями users - тогда получаем

PHP:
class Users extends FrameworkClass
{

}

В классе Users мы описываем все методы, например отображение всех пользователей из таблицы Users с определенным статусом и т.д.

А каким образом поступить если таблица Users связана по какому-нибудь ключу с другой таблицей, например
с таблицей городов (ну, пользователь при регистрации указал город в котором он живет).

Нужно ли создавать для этой таблицы отдельный класс или в этом нет необходимости? Как будет более грамотно?

Спасибо.
 
Грамотно так, как удобно. Если Вы собираетесь работать с городом как со строкой, то это одно. Если как с таблицей, то это другое. А если у города будет своя какая-то логика (ну тупо навскидку - получить локальное время), то логично город сделать классом.

Вообще наверное чуть грамотнее будет сразу классом, даже если в модели нет пока никакой логики. В последствии будет проще добавить что то в существующий класс и при этом не придется переписывать соседние классы.
 
Все это нужно решать при создании модели. Например если вы используете ORM то вам лучше прописывать связи.
 
Во, вот это я и имел ввиду. Каким образом прописывать связи? На простеньком примере можно?

Заранее спасибо.
 
Почитал про propel - понравилось. В принципе и в освоении не такой трудный вроде бы... Нужно будет обязательно попробовать, но на освоение нужно время. Нужно закончить то что делаю тем путем, которым пошел изначально. :(
 
мне кажется, что всё таки смотреть лучше в сторону доктрины
 
мне кажется, что всё таки смотреть лучше в сторону доктрины
Ни в коем случае, проблем не оберёшься.

Лучше смотреть в сторону LightOrm (без ложной скромности :) )

По поводу проблем в Доктрине и Пропеле тут много писалось, поищи по форуму.
 
Чет вы меня совсем запутали. Про Доктрину не читал. Прочитал про Propel и LightOrm. LightOrm значительно проще в освоении судя по http://phplightorm.wiki.sourceforge.net/LightOrm+vs+Propel+vs+Doctrine+benchmark

На самом деле то, что я сейчас разработал ___слегка___ похоже на LightORM.

Сейчас скачаю сам LightORM - посмотрю - может быть что-то для себя полезное оттуда выдерну. :)
 
Сверху