класс для работы с таблицами БД (+обработка связей M:N ...)

4LF

Новичок
класс для работы с таблицами БД (+обработка связей M:N ...)

делаю сайт, в его бд много таблиц со связями M:N 1:N
чтобы не писать примерно похожих обработчиков этих таблиц написал класс, который в зависимости от переданной конфы обслуживает ту или иную таблицу.
Оцените, покритикуйте...
А вот и класс(точнее его описание)
PHP:
$table = array
    (
        'table' => 'section', // имя таблицы
        'key' => 'id',          // ключ таблицы
        'relations' => array // связи таблицы
        (
// отношение 1:N
// type=ch:pa - child:parent
// parent_table=field_set - таблица на которую ссылается данная таблица
// parent_key=id - ключ в parent таблице
// parent_fields=* - какие поля нужно возвращать при select'e
// ptr=field_set_id - поле в таблице section, которое является "указателем" на parent таблицу
            'field_set_idHASname' =>
                'type=ch:pa&parent_table=field_set&parent_key=id&parent_fields=*&ptr=field_set_id',
// отношение M:N
// type=X:Y
// child_table=key - дочерняя таблица 
// child_key=id - ключь в child таблице
// child_fields=name,type - возвращаемые поля
// sys_table=value - промежуточная таблица (содержит ключи parent и child таблицы + доп. поля) 
// sys_ptr_pa=section_id - поле, указывающее на parent таблицу
// sys_ptr_ch=key_id - указатель на child таблицу
// sys_fields=value - доп поля
// ptr=id - поле из section, является ссылкой на child таблицу (key)
            'sectionHASkey' =>
                'type=X:Y&child_table=key&child_key=id&child_fields=name,type&sys_table=value&sys_ptr_pa=section_id&sys_ptr_ch=key_id&sys_fields=value&ptr=id',
//            
            'sectionHASchild' =>
                'type=pa:ch&child_table=section&child_key=id&child_ptr=parent_id&child_fields=*&ptr=id'
        )
    );
вот конфа таблицы - исходя из нее класс строит sql запросы для работы со связями и обычные insert/update/delete
в планах есть добавить к характеристике связей symbol(при удалении parent, child удаляться не будет)/hard( будет удаляться все ) link

вот часть структуры таблицы
 

4LF

Новичок
мдя, смешно...

-~{}~ 17.11.05 21:09:

а подскажите что нибудь для php4 (нет ли никаких сборок propel для php4)
 

crocodile2u

http://vbolshov.org.ru
4LF
Не Propel'ем единым жив человек... Посмотри, например, PEAR::DB_DataObject
 

4LF

Новичок
crocodile2u
не понравилось :( именно описание структуры БД...
думаю может продолжить свой класс, только теперь зная что/как у других...
 
Сверху