Написание собственной медиатеки: с чего начать? - PullRequest
4 голосов
/ 16 апреля 2010

Я бы хотел добавить библиотеку мультимедиа в пользовательскую CMS, основанную на Zend Framework и Doctrine.Цель состоит в том, чтобы создать что-то похожее на медиатеку Worpress: вы можете загрузить медиафайл, а затем прикрепить его, например, к статье.

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

Ответы [ 2 ]

2 голосов
/ 07 мая 2010

Я не знаю, как создается библиотека WPs, но она с открытым исходным кодом, вы можете взглянуть.

Что касается структуры таблицы, при условии, что вам нужна ссылка "многие ко многим", которую вы хотитетаблица перекрестных ссылок, что-то вроде:

record_id (int)
media_id (int)
title (text)
caption (text)
rank (int)

Тогда таблица мультимедиа будет выглядеть примерно так:

id (int)
title (text)
caption (text)
filename (text)
type (image|multimedia|document)

Возможно, вы также добавите поле folder_id в таблицу мультимедиа, иливозможно, вы вместо этого хотите пометить тегами, в этом случае у вас есть третья таблица с media_id и tag в качестве полей (или у вас есть теги в виде значений, разделенных запятыми в таблице media).

Это позволитВы связываете один носитель с несколькими элементами, а один - с несколькими.Это позволит вам установить заголовок и заголовок для элемента мультимедиа и переопределить его для конкретной ссылки.Например, у вас есть изображение дома с заголовком, чей это дом, но в одной ссылке заголовок перезаписывается (в таблице перекрестных ссылок) текстом, в котором говорится, что этот дом является примером определенной архитектуры.Функция SQL coalesce пригодится для получения правильного заголовка и заголовка.

Если контент, который ссылается на мультимедиа, приходит из нескольких таблиц, скажем, у вас есть таблица с именем персонала и другаяназывается «продукты», и они оба могут ссылаться на носитель, тогда таблица перекрестных ссылок также должна иметь поле table_name .Поле type позволяет легко получить только мультимедиа, прикрепленные к записи, или только изображения;Вы можете посчитать, сколько документов прикреплено, сколько изображений и т. д., исходя из этого имени файла в каждом запросе, это означает, что у вас более медленные запросы.

Одна вещь, которая не совсем подходит для этого, - отключить размещение мультимедиасайт.Если вы используете, например, Amazon S3 для хранения этих изображений, то в поле «имя файла» будет URL-адрес изображения.Я просто снимаю это как что-то, что вы должны принять во внимание при разработке библиотеки мультимедиа.

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

Удачи.

0 голосов
/ 16 апреля 2010

написать загрузчик файлов и браузер файлов
это все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...