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

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

mus

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

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

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

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

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

Так работы рутинной будет больше, но на создание универсальной модели Вы можете потратить куда больше времени. Что Вам дороже?
 
Wade2
Библиотеки для упрощенного использования средств баз данных у меня есть, собственно, как и множество подобных библиотек, облегчающих жизнь. Судя по всему мне не стоит заморачиваться и делать все в более простом варианте...
 
я бы что-то такое сделал

$class = new class dblist();
$class->addOption('id');
$class->addOption('parent_id');
$class->addOption('name');
$class->insert(array('0','-1','parent');
$class->getList($flag);
 
Цель. Оптимизация архитектуры части проекта с условием разумных нагромождений.
Люди готовы делать всё что угодно, что бы ничего не делать...

На самом деле здесь нечего оптимизировать. Решите задачу хоть частично но в лоб. Тогда возможно увидите, где у вас избыточный повторный код. После чего и занимайтесь оптимизацией.
 
Тут ключевое слово банальных :-)
Страны практически статический справочник, хоть в массиве
храни.
дилер это разновидность клиента (т.е. группы)
товар он и в африке товар - в данном случае прайс-каталог?
 
admin
Они все, в принципе, равны по сути, по существу же вещи слегка разные.

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

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