При проектировании сайта возникли некоторые проблемы, пишу сюда, во-первых, чтобы уяснить свои мысли для себя, во-вторых в надежде на добрый совет.
Сайт посвящен обзорам веб-проектов, выходящих в нашем городе. Плюс к этому планируется проводить конкурс на лучший сайт года, но это уже не так сложно.
Сложно вот что.
На сайте будут "студии", "фрилансеры(отдельный дизайнер)", и "проекты"
"студии" и "фрилансеры" делают "проекты"
и "студии", и "фрилансеры", и "проекты" могут быть подвергнуты бурному обсуждению посетителей сайта, возможно выдаче оценок, т.д.
у "студии" и "фрилансера" может быть история, портфолио там, и т.д.
Я вижу три возможных подхода в решении этой задачи:
1)
"студия", "фрилансер", "проект" - это ноды.
для связей между ними - relativity, distant parent - госпожа bang делала что-то похожее.
2) taxonomy - тут такая интересная идея пришла мне в голову ночью
"студия", "фрилансер", "проект" - опять же ноды.
при создании ноды "студия" создается term для этой студии в словаре "Проекты по студиям"
при создании ноды "проект" уже из выпадающего селекта словаря "Проекты по студиям" выбираем сделавшую студию.
Возможно "студия" и "фрилансер" должны быть одним типом ноды?
3) "Студия", "фрилансер" - это пользователи. "Проект" - нода.
что-то похожее можно наблюдать здесь.
Чем мне нравится последний подход - так это тем, что "студия" может прокомментировать чужой "проект". Т.е. сайт более "активный" будет. Вот это действительно интересно!
Тут возникающая проблема - как к пользователю "студия" прицепить комментирование и подвергнуть классификации?
Комментарии
Вот ещё вспомнилось, к одной из старых версий друпала был модуль который делал из пользовательских профилей ноды, сам его однако не попробовал, но может идеи из него пригодятся.
--
Axel,
www.axel.drupal.ru | darcs-репозиторий моих разработок
кстати, мне приходилось использовать и первый, и второй подход вариант, который предложил axel, интереснее, потому что действительно позволяет организовать интерактивность, о которой написано в п.3, и вообще - логичнее.
dublicate
к сожалению я "сдулся" и до полной интерактивности не дотянул. Делаю самым простым способом пока, основная проблема с пользователями в том, что возможно я захочу добавить студию в каталог сам, а через неделю эта студия очнется и решит зарегистрироваться на сайте - ... сразу куча проблем.
Поэтому у меня всё нодами, каталог отдельно, пользователи отдельно. Не так уж нелогично, как может показаться на первый взгляд, хоть и не идеально...
BTW, что-то я модуля связи нод с пользователями не нашел.
а как свзяь между нодами решили делать? первым или вторым способом?
я так думаю, что про связь - имеется в виду не какой-то отдельный модуль, а просто принадлежность ноды тому или иному пользователю.
опять дубликат, блин браузер что-то шалит
я вот всерьез призадумался, а нужна ли она вообще, эта классификация? Скорее всего буду делать с автоматическим созданием term, т.е. второй подход. Гибко и удобно, по сравнению с relativity, взять хотя бы случай совместного проекта студий. Что пугает - двадцать студий, тридцать фрилансеров - и при создании обзора проекта получим огромный мульти-селект возможных создателей в страницу высотой пока не знаю как это обойти.
подправить код, генерирующий мультиселект, чтобы ограничивалась высота? хотя все равно, конечно, не очень удобно, но да выбирать-то в любом случае на каком-то этапе придется из тех же двадцати стулий и тридцати фрилансеров, какой бы подход не использовался...