Архив | Об архиве | FAQ | New BAN List | Полезные ссылки | Друзья архива | Архив новостей |
|
Регистрация | Справка | Правила форума | Поиск | Сообщения за день | Пользователи | Календарь |
Приёмная ArjLover-a Послания и пожелания по работе Архива |
|
Опции темы | Опции просмотра |
|
|||
Цитата:
Я думаю, лучше сделать упор на отзывы (аннотации) посетителей ресурса. Сделать возможность выставлять оценки, писать комментарии, впечатления (для своих пользователей). Примерно так, как это сделано на kinopoisk.ru . Ну а рекламки, завораживающие аннотации оставить для желтых сайтов PS. Так как Ваш ресурс имеет собственную аудиторию, можно не следовать шаблонам (супер-сайтам по кино "вообще"), а ориентироваться на нее. Создавать своё, в том числе и свою особенную атмосферу... PPS. Аннотация часто нужна (здесь) лишь для того, чтобы вспомнить о чем фильм. |
|
||||
я тут задумываюсь по тем же вопросам с аудио-архивом, и вот придумала вам ложку дегтя (я пока что придерживаюсь мнения что одного поля с fullindex) достаточно для всех имен 'кто работал над фильмом/мультиком/пластинкой')
вот ложка дегтя: скажем у вас имя режиссера в отдельном поле, и юзер нашел какой-то фильм понравившегося ему режиссера. в описании этого фильма он видит ссылку 'посмотреть все фильмы режиссера Ивана Сергеева' (или просто тыкает на имя режиссера), это уже детали. база ему выдает все фильмы где Иван Сергеев указан в поле 'режиссер' Кажется, задача выполнена - у человека есть список фильмов где Иван Сергеев режиссер. А если в каком-то фильме Иван Сергеев не режиссер, а скажем, ассистент режиссера или его должность называется как-то по другому? Сценарист, редактор и т.д... Юзер тогда этого фильма в списке не увидит. Если не делать конечно всегда паралельный поиск по всем полям. Но, тогда спрашивается, зачем делать normalized tables? А если вся информация хранится в одном поле, то если мы на каждой странице информации напишем текст 'чтобы найти другие фильмы понравившегося вам режиссера, актера и т.д. введите его имя в поле поиска' - то база выдаст ВСЕ записи где присутствует Иван Сергеев. Может он в детстве актером был, и снимался в фильмах - вот, тогда база и это выдаст. |
|
|||
Sofa, если посмотреть на структуру БД, предложенную konst5, то видно, что описанная проблема там не возникнет.
Все люди записываются в одну общую таблицу (person), содержащую их номер и ФИО. Отдельной таблицей идут связки между фильмами и людьми через их номера (film_person) - там же отмечается, в качестве кого человек работал над конкретным фильмом (актёр, режиссёр и т.п.). Таким образом, чтобы найти все работы конкретного человека, делается один запрос по таблице связок (film_person) и из результатов сразу получаем ссылки на все его фильмы и "должности" в них. 3 года назад я сам делал каталог фильмов на основе одной таблицы: http://musicvideos.ru/videodb . И учитывая, что информация туда собиралась с разных сайтов, имена людей указывались всеми возможными способами. В результате нормального поиска всех фильмов одного человека там так и не получилось (только небольшие выборки, где по удачному стечению обстоятельств человека обозвали одинаково). Поэтому предлагаю подключить konst5 к переделке нынешних интерфейсов ввода/вывода информации по фильмам под описанную им базу данных. Насчёт парсеров: не стоит сейчас гнаться за количеством в ущерб качеству, запихивая в базу непроверенные результаты работы скриптов. Предлагаю делать постепенный переход от ссылок на внешние ресурсы к собственным описаниям: данные из базы выдавать только для тех фильмов, которые уже обработаны - остальные пока оставить в виде ссылок. Результат работы парсера по каждому фильму нужно проверить вручную, поэтому лучше чтобы он записывался не в базу, а заполнял стандартную форму добавления фильма, где бы отмечались расхождения ФИО с имеющимися в базе, человек мог бы их исправить и только потом записать. Иначе мы получим базу с кучей обозначений для каждого человека, и соединить их потом будет намного сложнее. Последний раз редактировалось AlexeyPetrov, 03.04.2008 в 10:12. |
|
||||
спасибо за ссылку на описание базы, на самом деле смысл имеет, и проблем не должно быть.
особенно проблему внесения одного и тоже человека несколько раз можно разрешить (кажется кто-то уже это писал тут) - javascript который загрузит все имена из базу при загрузке страницы и потом будет по мере заполнения человеком формы ввода будет подыскивать похожие имена из тех которые уже есть в базе - если уже есть, то вводить новое имя не надо мне этот весь подход нравится эта база у вас будет общая и на мультики и на фильмы, да? т.д. нужно в таблице film указать 'мультик' это или 'фильм'? потому что очень многие люди работали и там и там - актеры из фильмов озвучивали мультики, и т.д... если поиск будет только по 'мультикам' или 'фильмам', многое пролетит (это я так, скромненько подхожу к тому что я (аудио-архив) тоже хочу в вашу базу многие актеры озвучивали и мультики и пластинки, по многим фильмам есть пластинки с теми же актерами, композиторами и т.д... мне эта схема в принципе подходит, остается несколько вопросов которые относятся чисто к 'аудио', можно будет отдельно обсудить |
|
|||
Думаю, можно разместить фильмы, мультики и аудиосказки в общей таблице, добавив туда поля, необходимые каждому из них, а также поле, по которому можно делать традиционное разделение файлов на Архиве: фильм/фильмик/мультик/аудиосказка.
Однако есть смысл сделать отдельную таблицу с технической информацией по файлам и таблицу с информацией по их содержимому. JavaScript для контроля правильности ФИО я и предлагал http://forum.arjlover.net/showpost.p...9&postcount=65 Но лучше его реализовать так, чтобы он не загружал каждый раз весь список ФИО из базы в свой массив, а делал мелкие запросы к базе. Запросов таких будет довольно много (в идеале: после каждого нажатия клавиши), причём использовать "подсказки" можно не только при добавлении фильма, но и в форме поиска людей на сайте, доступной для всех, поэтому базе будет проще работать, если этот список у неё будет в отдельной табличке. А в будущем (если возникнет такая необходимость) эта таблица позволит добавлять каждому человеку оригинальное ФИО (для нерусских), страну, годы рождения/смерти, описание, и всё что душе угодно. Последний раз редактировалось AlexeyPetrov, 03.04.2008 в 13:39. |
|
||||
мда, мне еще нужно решить проблему того что скорее всего я не хочу делать отдельные записи для каждой аудиосказки. Хочу делать по 'дискам'/'пластинкам' (это сейчас называется 'директорией' и лежит в одном месте).
На самом деле на одной пластинке потенциально может быть несколько сказок, каждая - отдельный mp3 файл, их обьединяет то что они были выпущены на одной пластинке/диске. Часто актеры одни и те же, но не всегда. Есть пластинки/диски на которых по 20-30 отдельных файлов, там, стихи какого-нибудь автора или песни Никитиных. Есть также песни которые просто сидят в директории 'песни', так как их ничего не обьединяет - как их в базу вводить я придумать не могу, разве что по каждой песне..блин... Но если вводить по каждой песне, логически надо и каждое стихотворение на 'пластинке басен Крылова' вводить отдельно, так правильней, что ли.. А еще не на всех пластинках все разрезано по-файлам, есть где просто 'сторона 1' и 'сторона 2' (если отдельные стихи и песни, конечно; если это все одна сказка - то и один файл) гррр.. не знаю, посоветуйте что-нибудь, и посмотрите это: http://forum.arjlover.net/showthread.php?t=5161 |
|
|||
Цитата:
Потом их можно связать так же, как и персоны с описаниями в режиме "многие-ко-многим". На страничке аудио будет не список файлов, а список описаний. Заходишь на описание, а там уже видно какие файлы к этому описанию относятся. Может быть несколько описаний на один файл или несколько файлов под одним описанием. Т.е. технически такой проблемы не будет, в каждом частном случае модератор решает как ему удобнее. Последний раз редактировалось troll, 03.04.2008 в 13:06. |
|
|||
Доработал структуру БД из вариантов, предложенных konst5 и troll.
Таблица title // заголовки id int4 (primary key) parent_title_id int4 default 0 // title.id - ссылка на обобщающий заголовок name varchar // русское название name_orig varchar // оригинальное название (для нерусских) year int2 // год создания edition varchar // номер выпуска аудиосказок, пример: МОНО 33-8716-87 description text // описание link varchar // ссылка на внешний ресурс date_create ?date // дата/время создания записи date_modify ?date // дата/время последнего редактирования записи Таблица file // файлы id int4 (primary key) title_id int4 // title.id - ссылка на заголовок type int2 default 0 // 0 - обычный файл, 1 - картинка path varchar // путь к файлу size ?int8 // размер файла video_info varchar // пример: 640x480 25fps DivX5 1.2Mbps length int4 // длительность (в секундах) md5 varchar // MD5-хэш ed2k varchar // eDonkey-хэш torrent ?bool default false // torrent: есть/нет video_sample ?bool default false // видеофрагмент: есть/нет images int2 default 0 // количество кадров из фильма date_modify ?date // дата/время последнего изменения файла Таблица person // люди id int4 (primary key) name varchar // русское ФИО name_orig varchar // оригинальное ФИО (для нерусских) birth_year int2 // год рождения death_year int2 // год смерти country_id int2 // country.id - ссылка на страну, где родился description text // описание, биография link varchar // ссылка на внешний ресурс Таблица person_type // профессии людей id int2 (primary key) name varchar // примеры: актёр, композитор, режиссер Таблица category // категории и жанры id int2 (primary key) type_id int2 // category_type.id - ссылка на тип категории name varchar // название категории description text // описание категории Таблица category_type // типы категорий id int2 (primary key) name int2 // название типа категории: - тип заголовка (мультик/фильм/фильмик/аудиосказка) - жанр (комедия/приключения/...) - техника создания мультика (рисованный/кукольный/...) - цветность (цветной/ч-б/дуотон/...) - серия аудиосказок (Сказка за сказкой/Журнал 'Колобок'/...) ... Таблица country // страны id int2 (primary key) name varchar // название страны Таблица studio // студии id int2 (primary key) name varchar // название студии Таблица language // языки id int2 (primary key) name varchar // название языка Таблица comment // комментарии пользователей id int4 (primary key) link_id int4 // title.id или person.id - ссылка на комментируемый заголовок или человека link_type int2 // тип ссылки: 0 - на заголовок, 1 - на человека user_id ??? // ссылка на пользователя в таблице форума message text // сообщение date_create ?date // дата/время создания сообщения Таблицы-связки Таблица title_person // связь заголовков и людей title_id int4 // title.id - ссылка на заголовок person_id int4 // person.id - ссылка на человека person_type_id int2 // person_type.id - ссылка на "должность" person_weight int2 default 30 // "вес" данного человека для данного заголовка Таблица title_category // связь заголовков и категорий title_id int4 // title.id - ссылка на заголовок category_id int2 // category.id - ссылка на категорию Таблица title_country // связь заголовков и стран title_id int4 // title.id - ссылка на заголовок country_id int2 // country.id - ссылка на страну Таблица title_studio // связь заголовков и студий title_id int4 // title.id - ссылка на заголовок studio_id int2 // country.id - ссылка на студию Таблица file_language // связь файлов и звука/субтитров file_id int4 // file.id - ссылка на файл фильма/мультика/... lang_id int2 // language.id - ссылка на язык lang_type int2 // 0 - звук, 1 - субтитры lang_file_type int2 // 0 - встроенный, 1 - отдельным файлом lang_file_info varchar // пример: "48KHz Stereo 192Kbps mp3" lang_file_ext varchar // расширение отдельного файла звука/субтитров (mp3/srt/...) audio_sample ?bool default false // аудиофрагмент: есть/нет Возможно, также пригодятся поля: - Буква (в title) для ускорения вывода заголовков на определённую букву - Ссылка 2/3/... (в title и person) - дополнительные ссылки на внешние ресурсы - Служебные примечания (в title, file и person) Отмечу отдельно функцию поля title.parent_title_id: Его можно использовать для создания древовидной структуры заголовков. В главном списке будут выдаваться только заголовки верхнего уровня: с parent_title_id=0. У каждого из них могут быть подзаголовки, отличающиеся тем, что их parent_title_id равен id обобщающего заголовка. При желании можно аналогично делать подзаголовки и у каждого из них до любой глубины. Таким образом, аудиосказки можно сначала описать в виде "главных заголовков", сделанных по подборкам сказок (дискам). А потом можно добавить к каждому из них подзаголовки (отдельные сказки). Файлы, людей, категории и т.п. можно привязывать как к главным заголовкам, так и к подзаголовкам. Тогда в основном списке аудиосказок на сайте будут выдаваться только названия подборок (как сейчас: каталоги). При входе в подборку будет выдаваться информация, относящаяся к подборке в целом, список её подзаголовков (со своими описаниями) или просто список связанных файлов. Отдельные песни можно аналогично объединить под общим заголовком "Песни", но при этом иметь возможность описать и каждую из них. Последний раз редактировалось AlexeyPetrov, 04.04.2008 в 11:25. |
|
||||
Жанра не должно быть вообще или их должно быть несколько для каждого фильма. Неоднократно обсуждали, что разбивать по единственному жанру очень неточно.
Страна пригодится, наверное. Хотя у нас иностранного немного. Студия - тоже неплохо. Есть любители. |
|
|||
С помощью таблицы-связки title_genre может быть по несколько жанров у каждого фильма. Вообще, таблицы-связки нужны как раз для того, чтобы корректно вставлять переменное количество полей одного типа в одну запись таблицы, а не перечислять их текстом через запятую, что часто приводит к ошибкам и усложняет работу с базой.
Остались такие вопросы: - Стран и студий тоже может быть по несколько штук у каждого фильма/мультика? - Нужны ли страны (или "место рождения" как на КиноПоиске) для людей? - Есть ли смысл отличать "типы мультиков" от жанров? Последний раз редактировалось AlexeyPetrov, 03.04.2008 в 16:51. |
|
|||
А где ссылка на файл субтитров?
Боюсь предлагать усложнения, но субтитров может быть тоже несколько на один видеофайл. Например можно выкладывать субтитры на всех языках для нерусскоязычных пользователей. Думаю это будет востребовано - помню как просили подсказать мультфильмы без слов для англоязычных детей, субтитры английские тоже спрашивали. |
|
||||
Спасибо, про несколько полей поняла.
Несколько стран? Изредка, но бывает. совместные фильмы. Несколько студий? Совсем изредка, кроме как несколько стран Место рождения персоны - я думаю, не надо. Иностранные персоны очень редки у нас. Уж очень фоновая информация. Как и биография, кстати - биографию я бы оставила нам "на вырост", так сказать. В эту сторону можно, и, наверное, нужно подумать. Тип мультика, я думаю, это не жанр, а технология - рисованный, кукольный, перекладка, пластилиновый... Но это лучше у Uswer-а спрашивать. А для фильмов я бы тоже сделала тип, пожалуй - цветной или черно-белый. |
|
||||
О, про субтитры давно хотела обсудить . У меня много скопилось английских субтитров к нашим фильмам - почему не выложить? Веса в них - чепуха. И еще полно русских субтитров к фильмам, где русская звуковая дорожка есть, но она не единственная. Тоже надо бы выложить - некоторые предпочитают смотреть на языке оригинала.
|
|
|||
Кстати, нужны ли комментарии пользователей к людям? Или только для заголовков?
|
|
||||
ок, про храниене в базе поняла, спасибо
мне теперь надо придумать что делать с обложками. в идеале, они есть на каждый диск, и их несколько файлов - от одного до, может, файлов 8.. хранить их как ссылки на jpg файлы вместе с ссылкой на аудио-сказку? хотелось бы выводить их в уменьшеном размере на странице описания каждой пластинки, намного красивее так.. |