именование столбцов в таблицах + программный код..

Духовность™

Продвинутый новичок
именование столбцов в таблицах + программный код..

Раньше делал так, образно говоря:

PHP:
create table blog_post_comments (
    ...
    id_post ...
)

create table articles_comments (
    ...
    id_article ...
)
Теперь столкнулся с проблемой, что когда я делаю класс Comment, то приходится иметь в классе свойства типо имя_таблицы, имя_первичного_ключа_записи_к_которой_принадлежит_коммент и т.д. Это нужно для того, что бы можно было расширять этот класс.

Скажите, как лучше - иметь эти свойства или стараться стандартизировать имена столбцов? В данном случае id_post и id_article могли бы иметь имя id_record и тогда бы мне не пришлось заводить в классе свойство для идентификации этого столбца. Но имя таблицы - по любому придется определять в extends классах - а это утомляет.

И вообще, как вы считаете, как более правильно делать классы - с объявлением каких-либо данных внутри, типо прописать имя таблицы напрямую в конструкторе, или все свойства назначать исключительно через set-теры?
 

pilot911

Новичок
во всех таблицах лучше использовать одинаковые имена для след столбцов

id
hidden - скрыто
deleted - удалено
crdate - время создания
tstamp - время изменения



остальное по желанию :)
 

Crys

Двинутый новичок
Но имя таблицы - по любому придется определять в extends классах - а это утомляет.
Как часто ты будешь создавать объект? Если один раз, то тогда без разницы, как определять имя таблицы. Если более одного раза, то при определении таблицы в классе ты это делаешь один раз, иначе столько раз, сколько создаешь объект.
 

Духовность™

Продвинутый новичок
ну ок. тут ситуация немного сложнее..

допустим, делаем мы класс, который умеет возвращать строку из таблицы А, а так же возвращать строку из таблиц A join AA. В этот класс потом добавится метод А join AA join AAA и т.д.

Т.е. класс оперирует какими-то таблицами, но функционал класса надо сделать расширяемым. Что бы не плодить логику методов, приходится в SQL писать вместо явного указания имен таблиц и полей переменные, которым назначены имена таблиц/столбцов. А потом в extends классах, в конструкторах писать

PHP:
$this->db_table_name = 'blog_post';

$this->pk_field_name = 'id_post';

$this->order_field_name = 'post_order';
вот меня это и напрягает....
 

Garret

Кто здесь?
ИМХО лучше и проще стандартизировать имена.

З.Ы. И давать понятные названия конечно, потому что "tstamp" это timestamp неизвестно чего :)
 

AmdY

Пью пиво
Команда форума
имя таблицы по умолчанию совпадает с именем класса, первичный ключ по умолчанию id, а что за order_field_name я не понял
 
Сверху