Абстрактной идеальной структуры не существует, т.к. структура зависит от различных критериев (смысловое содержание, заказчик, тип файла, время получения от заказчика и т.п.), которые в свою очередь зависят от рабочего процесса, который используется в группе разработчиков. На основе этих критериев файлы и организуются в структуру. Притом, список критериев не обязательно единый для всех файлов.
Как хранить все? По проектам в папках, дальше по направлениям или по числам?
Проведите аудит всех файлов, чтобы выявить список уже используемых и требуемых (но ещё не используемых) критериев. Затем, учитывая модель работы каждого из разработчиков и потребности пользователей выберите нужные критерии так, чтобы они не вызывали раздражения у разработчиков при заполнении, но и позволяли находить информацию с адекватной степенью точности (т.е. не стоит углубляться в детализацию структуры и заставлять разработчиков заполнять у каждого файла тучу критериев ради моментального поиска нужного файла, выполняемого раз в несколько месяцев, но и чтобы при поиске нужного файла пришлось просматривать вручную лишь ограниченный участок иерархии файлов).
Для группы проектов можно использовать иерархию (например, в случае проектов одной крупной компании, объединённых общим стилем). В этом случае будьте готовы к тому, что структуру файлов придётся перестраивать в случае изменения структуры компании или при возникновении несоответствия создаваемых материалов структуре компании (чтобы этого избежать, можно сразу использовать в качестве названий подпроектов названия, отстранённые от конкретных названий фирм и более соответствующие структуре создаваемых материалов).
Устаревшие файлы можно периодически складывать в папку «архив», которую создавать в той же папке, что и архивируемый файл (т.е. создавать свою папку «архив» в каждой из папок структуры файлов).
Что делать если в одном проекте отдельно разрабатывали лого, отдельно спустя полгода сайт, а потом отдельно еще какие-то мелочи?
Объединить все эти материалы в один проект с общим названием, в котором уже создать подпапки «сайт», «лого», «фирменный стить», «печатная продукция» и т.п. В качестве общего названия можно использовать название фирмы, домена и т.п., при необходимости добавляя к каждому названию префикс, используя написание с большой буквы и т.п. средства для указания на то, что название этой папки является названием проекта.
Не пугайтесь, если объединение будет масштабным (однако задумайтесь над целесообразностью выбранного момента объединения, если итоговая структура ещё туманна или планируются дополнительные изменения).
Как быть если одни и те же материалы используются в нескольких проектах?
Поместить такие материалы в отдельный проект с «пространным» названием (например, «общее», «другое», «библиотека» и т.п.). Притом, такая папка с общими файлами не обязательно должна быть одна. В случае, если внутри одного проекта используется иерархия из подпроектов, то такие «пространные» папки могут быть на любом уровне.
Пример структуры:
общее/
архив/
резные узоры (03.09.2012).psd
резные узоры (12.03.2012).psd
резные узоры (10.11.2012).psd
резные узоры.psd
ООО Пульс/
сайт/
главная страница.psd
внутренняя страница.psd
печатная продукция/
новогодняя акция 2013 (10x25).psd
фирменный стиль/
визитка.psd
материалы от заказчика/
11.02.2013/
фото директора.png
16.03.2013/
фото бухгалтера.png
фото администратора.png
ОАО ТелеСистемы/
общее/
диалоговое окно.psd
всплывающая подсказка.psd
Ритейл/
сайт/
печатная продукция/
Интранет/
сайт/
P.S.: в качестве названий папок, естественно, можете использовать и английские названия (archive, general, library и т.п.).
P.P.S.: я рассматривал организацию материалов исключительно на основе файлов и директорий.