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

Camillo

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

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

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

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

PHP:
class Users extends FrameworkClass
{

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

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

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

Спасибо.
 

whirlwind

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

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

valeraorg

Новичок
Все это нужно решать при создании модели. Например если вы используете ORM то вам лучше прописывать связи.
 

Camillo

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

Заранее спасибо.
 

Camillo

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

zerkms

TDD infected
Команда форума
мне кажется, что всё таки смотреть лучше в сторону доктрины
 

atv

Новичок
мне кажется, что всё таки смотреть лучше в сторону доктрины
Ни в коем случае, проблем не оберёшься.

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

По поводу проблем в Доктрине и Пропеле тут много писалось, поищи по форуму.
 

Camillo

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

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

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