[еКнига] Каталогизация - программа
Доброе время суток, всем,
Выложил пробник.
Предупреждение: не гарантирую даже его запуск и корректность работы.
Особенно не гарантирую перенос данных.
Многие функции ещё делать и делать...
Скачивайте, только если делать нечего.
А также если кто-то хочет высказать реальные пожелания и
побыть бета-тестером.
Итак:
http://www.entropii.net/ebooka/inst.rar
размер порядка 1 мегабайта.
Здравствуйте, Иван,
Я посмотрел ваш макет.
Первое, что хочется сказать, сам макет доказывает возможность создания
легко устанавливаемого каталогизатора на основе баз данных, но без SQL
серверов и BDE. Я голосую именно за такой инструмент и под виндоуз и
под линукс.
Теперь по сути. Я ещё раз хочу обратить внимание, что дерево категорий
смотрится, конечно, хорошо, и оно вполне интуитивно понятно, НО!!! Как
мне кажется, оно ведёт нас от читателя к библиотекарю. Рассмотрим
пример.
Допустим, у нас есть категории: Учебники, Научная литература,
Программирование, Документация. И вот я хочу добавить книги одной
серии "MS Access для начинающих", "MS Access для программистов" и "MS
Access: Справочник VBA". Куда же их класть в вашем дереве? Помещая их
в одну ветку, мы тем самым сами себе отсекам возможность засветить их
и в других категориях. Конечно, можно отговориться - мол, структуру
категорий надо тщательно продумывать. Может быть, может быть. Но мне
кажется, что этим самым вы вынуждаете меня как пользователя к лишней
работе. Мне не хочется думать, куда класть книгу. Мне нужно её занести
в каталог с минимальными издержками времени и собственных РАЗМЫШЛЕНИЙ.
Я бы предпочёл видеть список категорий, чтобы проставить галочки тем
категориям, куда с моей точки зрения книга относится.
Я считаю принципиально важным обеспечить максимальною свободу в выборе
категорий книг.
Механизм может быть совершенно разный. Вот на вскидку два варианта.
1) ключевые слова а-ля мета-тег для HTML. Такие слова можно хранить в
одной строке (поле в таблице книг). Слова можно набирать руками, а
можно выбирать из списка. Главное, чтобы в поиске можно было сказать -
А найди-ка мне всё, где есть слова "учеб" и "программ" или "Delfhi"
или "дельфи". Ещё раз подчёркиваю, слова не в самой книге, а в
ключевых словах для этой книги.
2) Делаем таблицу категорий и таблицу книг. Делаем таблицу бинарного
отношения для связи этих двух таблиц с двумя полями id-книги и
id-категории. Тогда, для любой книги мы просто оптичиваем в списке
категорий те, к которым её относим. При поиске мы тоже в списке
категорий просто оптичиваем и фильтруем те, которые нас интересуют.
О структуре полей, может быть, говорить ещё рано, - техзадания ещё
даже в черновике нет. Но всё же... Для раздумий, так сказать.
Вопрос с авторами совсем не прост. Что делать с документацией? А что
делать с альманахами и журналами, например, с выпусками izone? Если
авторов у одной книги не один, а два, или пять? всех в одно поле или
каждого в своё? А если в одном файле лежит несколько книг данного
автора? (дружно чешем репу)
Как я уже говорил, мне кажется полезным поле идентификатора носителя
на каком винте или си-ди есть у меня эта самая ибука.
Книга может состоять из нескольких томов (вспомним Д.Кнута). Очевидно,
что их можно хранить как самостоятельные единицы. Но встаёт вопрос: А,
может быть, имеет смысл хранить межкнижные связи? со стороны
интерфейса нечто вроде "Смотри также"? Не знаю.
Для переводной литературы, наверное, имеет смысл хранить переводчика.
Бывает интересно иметь одну вещь в разных переводах. Впрочем, это и в
комментарий вставить можно.
Насколько я понял, "Серию" вы ввели для сиквелов. Мне кажется, это не
столь универсальное поле, - актуально для фантастики, а ещё для? Ведь
их тогда надо упорядочивать по хронологии и написания и действия.
Универсализировать это можно вводя понятие группировки книг (это
помимо категорий). Тогда каждый может приписывать книгу каким-то
группам. Например, группа "DEATHWORLD Гаррисона и его последователи".
Туда можно засунуть и оригиналы, и переводы, и Скайландиса с его
сиквелом. Или - о, вот ОНО! - группа "Толкиен" (ведь не выносить же
это в отельную категорию, а материало "около" темы столько, что надо
их как-то объединять). И категориям не мешает, и рыться проще. Но
структура усложняется...
Вообще-то, всем готовым делать каталогизатор, я бы предложил в
качестве реального полигона взять "Библиотеку в кармане" на трёх
дисках, импортировать из неё dbf-каталоги (их там несколько) в свою
структуру, и полазить, поискать. Поскольку коллекция там весьма
разнородная и разнообразная, много граблей найдёте, - а по мне, так
лучше как можно раньше на них наступить, чем в готовом продукте на
что-то непредвиденное напороться.