Приавльная работа с реляционной БД

Главные вкладки

Аватар пользователя treusp treusp 15 октября 2010 в 20:13

Подскажите, пожалуйста, как правильно спланировать решение следующей задачи на Drupal:
Сразу скажу, что ориентируюсь на Drupal7, чтобы потом не переделывать особо.

Задача - сделать нечто типа каталога.
Выглядеть должно примерно так:
- Категория
По практическим соображениям есть смысл ограничивать количество категорий, присваеваемых материалу?
Скажем, штук 5? Или 0 - не ограничено?
- Автор
Понятно, что это категория в таксономии.
У произведения их может быть несколько.

- Произведение
Это может быть книга, аудиокнига, видео...
В некоторых случаях это может быть локальный файл (pdf, mp3). В некоторых - ссылка на внешний файл (depositfiles...) или готовый к прослушиванию podfm.ru.
Аналогично с видео. М.б. ссылка на файлообменник, а может и на vimeo.com к примеру. Или сразу обе (чтобы можно было начать смотреть, чтобы оценить, а на самом деле удобно скачать файлом).
Более того, у произведения может быть сразу несколько вариантов (скажем, из видеосеминаров я часто выдираю аудиодорожки, чтобы их в дороге слушать).
Также к Произведению надо иметь возможность добавить картинки (например, обложку книги), описание (как краткое, когда на странице их много, так и подробное).

- Цитаты
Сборник цитат, фрагментов. Часть из них просто фразы, часть должны ссылаться на автора и/или произведение.

Если с категорией и Автором более-менее понятно (типичная таксономия), то как быть с Произведением? Сперва тоже начал в таксономию запихивать, но сдается мне, что надо название произведения сделать таксономией, а потом создавать материал, в котором будет описание с обложкой и просто ссылками на автора, на название произведения, ранее заведенное как таксономия.

Что скажете?

Еще смущающие моменты - к таксономии Произведение должно быть привязано несколько авторов.
Впоследствии (например, при заполнении цитаты) выбрав автора я должен иметь урезанный список доступных произведений (понятия не имею, как сделать).

В цитатах для текста использовать штатное поле description или создавать свое?
У штатного ограничение 256 символов, не всегда хватит. Если же другое создать - то штатное, из которого имя ноды генерится, как заполнять?
Есть ли опция автозаполнения? Например, автоинкремент или подстановка дата-время (ведь реально это поле нигде не будет в формах отображаться)

Пожалуй аналогичный вопрос и к Материалу. Ведь имя книги вы выберем из списка таксономии...

Не слишком путано я объяснил?
Насколько реально это сделать на Друпале?
Сколько примерно это может стоить, если заказать?

Спасибо,
Антон

Комментарии

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 15 октября 2010 в 21:25

"treusp" wrote:
Не слишком путано я объяснил?

Где вы таких слов нахватались "реляционной БД" ? Smile Разбейте всё на несколько параграфов и решайте пошагово. Сейчас это просто каша

Аватар пользователя treusp treusp 15 октября 2010 в 21:39

OK. Пробую перефразировать кратко:

Нужен каталог из двух основных типов материалов.

1. Цитата
Поля:
- текст цитаты
- ссылка на автора
- ссылка на название произведения

2. Произведение
Это может быть книга, фильм, семинар. А чаще всего одно и то же описание относится сразу и к обычной книге (со ссылкой на pdf) и к одноименной аудиокниге (mp3)...
Поля:
- Картинка (обложка книги), может быть несколько штук
- Описание краткое
Когда выводится по нескольку произведений на странице
- Описание полное
Когда выводится конкретное произведение (если есть)
- ссылка на pdf/doc/mp3/avi локальный на сервере или на внешнем ресурсе
- интегрированный podfm.ru или другой плеер
- интегрированный плеер с youtube/vimeo...
- ссылка на автора
- ссылка на название произведения

Собственно вопросы:

1. Насколько правильно я это представляю.
Может глупо заводить отдельно таксономию "название произведения" и размещать по нему единственную ноду. Может стоит сразу п.2 объявить таксономией.

2. Стоит ли для Цитаты заводить отдельное поле или воспользоваться Description
Штатное - только 256 символов, может не хватать иногда.
Дополнительное - но тогда чем заполнять штатное, из которого генерится url.
Есть ли автоподстановка (автоинкремент или дата-время...)

3. Как фильтровать Произведение чтобы оставались только те, которые допустимы при уже выбранном Авторе.

4. Сколько примерно может стоить, если заказать.
(и где лучше искать того, кто возьмется)

Уж не знаю, насколько понятнее стало...

Аватар пользователя WebRemake WebRemake 16 октября 2010 в 2:14

treusp wrote:
Насколько правильно я это представляю.

процентов на 30%
treusp wrote:
Может глупо заводить отдельно таксономию "название произведения"

глупо, название произведения должно быть заголовком ноды, создаваемой на базе типа материала "Произведение"
treusp wrote:
Может стоит сразу п.2 объявить таксономией.

не стоит
treusp wrote:
Стоит ли для Цитаты заводить отдельное поле или воспользоваться Description

для цитаты надо сделать отдельный тип материала - "Цитата" с полями
- текст цитаты - Body
- ссылка на автора - node reference на тип материала "Автор"
- ссылка на название произведения - node reference на тип материала "Произведение"
treusp wrote:
Как фильтровать Произведение чтобы оставались только те, которые допустимы при уже выбранном Авторе.

список произведений можно сделать через views, а для фильтрации по автору сделать exposed filter по полю автор
treusp wrote:
Сколько примерно может стоить, если заказать.

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