Проектирование банальных вещей

mus

Новичок
Проектирование банальных вещей

Господа, встал вопрос о верном проектировании при решении след. задачи:
Создание 4 разделов для вывода списков (товары, поставщики, клиенты, страны), добавления, редактирования и удаления позиций этих списков.
Сразу возник вопрос - вроде задача является однородной - 4 списка, но и в то же время все эти списки отличает кол-во параметров (у страны всего название, налог, стоимость транспортировки, а у клиентов около 10, причем клиенты делятся ещё на подкатегорию - дилеры). Соответственно, путем несложных арифметических вычислений, получаем 4 списка * 4 операции = 16 шаблонов, 16 моделей, 16 контроллеров...
Причем логика приложения будет практически идентичной...

Как разбить сие на подзадачи? Есть ли у кого-нибудь мысли? Я окончательно запутался уже...
Всякие нагромождения усложняют проект и делают его негибким, а если вдруг нужно будет сформировать 5-й список, то тут сразу же могут возникнуть проблемы с расширением функциональных возможностей, так как все будет меж друг дружкой завязано...

Резюмирую задачу.
Цель. Оптимизация архитектуры части проекта с условием разумных нагромождений.
Суть. Добиться гибкости при работе с разнородными списками (структура данных - список - остается единой, однако следует учесть так же и различные подразделы и т.д., как-то фильтрация оного списка по условию).
 

Wade2

Новичок
Мне кажется, нагромождений все равно не избежать.

Поэтому имеет смысл обратить внимание на универсальные механизмы логики (обращение к бд, например), а потом все равно для каждого случая делать свои функции и/или классы.

Так работы рутинной будет больше, но на создание универсальной модели Вы можете потратить куда больше времени. Что Вам дороже?
 

mus

Новичок
Wade2
Библиотеки для упрощенного использования средств баз данных у меня есть, собственно, как и множество подобных библиотек, облегчающих жизнь. Судя по всему мне не стоит заморачиваться и делать все в более простом варианте...
 

HraKK

Мудак
Команда форума
я бы что-то такое сделал

$class = new class dblist();
$class->addOption('id');
$class->addOption('parent_id');
$class->addOption('name');
$class->insert(array('0','-1','parent');
$class->getList($flag);
 

jonjonson

Охренеть
Цель. Оптимизация архитектуры части проекта с условием разумных нагромождений.
Люди готовы делать всё что угодно, что бы ничего не делать...

На самом деле здесь нечего оптимизировать. Решите задачу хоть частично но в лоб. Тогда возможно увидите, где у вас избыточный повторный код. После чего и занимайтесь оптимизацией.
 

confguru

ExAdmin
Команда форума
Тут ключевое слово банальных :)
Страны практически статический справочник, хоть в массиве
храни.
дилер это разновидность клиента (т.е. группы)
товар он и в африке товар - в данном случае прайс-каталог?
 

mus

Новичок
admin
Они все, в принципе, равны по сути, по существу же вещи слегка разные.

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

Тему можно закрыть. Действительно зря заморачиваюсь, можно в разы проще сделать...
 
Сверху