Вот вам задачка из real world для разнообразия.
Проектирую веб-прогу, в которой кроме прочего будет CRUD фирм и товаров (которые, естественно, связаны друг с другом 1:М). В главном меню есть пункты "фирмы" и "товары". При выборе пункта "фирмы" выдается таблица фирм с поиском и меню действий, в котором есть пункт "товары данной фирмы", выдающий соответственно таблицу товаров выбранной фирмы. При выборе пункта "товары" выдается таблица всех товаров с поиском.
Проблема: при этом в главном меню выбран пункт "фирмы", а на экране таблица с товарами. Некошерно, юзеры запутаются.
Вариант: переключать при этом пункт в главном меню на "товары". Некошерно, юзеры запутаются, тем более что при выборе пункта "товары" в главном меню выдаются все товары, а не только данной фирмы.
Вариант: убрать из главного меню пункт "товары" совсем, но куда тогда запихать поиск по всем товарам?
Вариант: назвать пункт меню "поиск товаров", но и это неверно, потому что 1) там не только поиск, но и редактирование, и 2) поиск есть и в таблице товаров фирмы, только он ограничен этой фирмой.
Вариант: организовать все как-то по-другому, умнее.
Идеи?