LibRusLib
Пятница, 29.03.2024, 02:32
Приветствую Вас Гость | RSS
 
Главная ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Unilib » Проектирование и разработка » Обсуждение проекта (Обсуждение проекта)
Обсуждение проекта
drserjДата: Понедельник, 31.10.2016, 21:26 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Unilib - программа для создания локальных библиотек.

Unilib представляет собой развитый офлайновый каталогизатор локальной библиотеки с автоматизированной пакетной обработкой импортируемых книг. Программа позволяет производить автоматический отбор книг по критериям, заданным пользователем, отсеивать дубликаты и.т.д.

Особенности Unilib-а:

1) Поддержка нескольких библиотек.
2) Импорт/экспорт личных данных.
3) Возможность обмена данными с другими библиотеками Unilib.

Ориентировочная структура БД

Структура модуля импорта
 
PFNДата: Пятница, 04.11.2016, 16:57 | Сообщение # 16
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Мое мнение - %Z, но для этого надоть соответственно переименовывать, перепаковывать оригинал с последующим удалением оригинала. Крайне не хочется поддерживать мультиархивы (тысячники), ибо в них функционал порезанный.

Цитата drserj ()
Что-то подсказывает, что г-н PFN будет против

А вот и нет!!! smile
Мне эти мультиархивы и даром не нужны, т.к. в них полно всякого мусора и книг на языках, которыми не владею. Поэтому и занимаюсь тем, что распаковываю мультиархивы, отсеиваю все мне не нужное и переименовываю файлы в удобный для меня формат.
Что касается формата %Z или %z, то он обязательно должен присутствовать, но не безальтернативно.
Я пока храню книги одиночными (незаархивированными) файлами с именами вида: АВТОР_СЕРИЯ-№_НАЗВАНИЕ_ЖАНР, т.к. так проще искать и убирать дубликаты. А потом можно и в %Z или %z.


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Пятница, 04.11.2016, 17:04 | Сообщение # 17
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Что касается формата %Z или %z, то он обязательно должен присутствовать, но не безальтернативно.

вот это и плохо... Даш народу альтернативу - на шею сядут... Остается жесткая привязка к месту, отсекая поиск. Иначе опять грустно по скорости поиска... 
Итак, резюмируем: 2 формата- %Z и имя с полным путём. 
Архивация обязательна, принудительное добавление fbd-файла к не fb2-файлам... Или нафиг?


drSerj
 
PFNДата: Пятница, 04.11.2016, 17:17 | Сообщение # 18
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Остается жесткая привязка к месту, отсекая поиск.

Не понял про "отсекая поиск"... Что имеется ввиду?

Цитата drserj ()
Архивация обязательна, принудительное добавление fbd-файла к не fb2-файлам... Или нафиг?

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


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
1_абрамДата: Пятница, 04.11.2016, 19:41 | Сообщение # 19
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Цитата drserj ()
Архивация обязательна, принудительное добавление fbd-файла к не fb2-файлам... Или нафиг?


Конечно, лучше бы добавлять. Но м.б. я  не понимаю какие минусы у этого решения.
 
drserjДата: Пятница, 04.11.2016, 20:46 | Сообщение # 20
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN  ()
Не понял про "отсекая поиск"... Что имеется ввиду?

Дело в том, что 99% времени на обращение к книге (получение данных, копирование и т д) тратится на поиск книги в файловой системе (на диске). При большом кол-ве книг нахождение одной книги может занимать минуту и более (если книг сотни тысяч и компьютер не очень мощный). Дабы избавить пользователя от такого "сервиса" был придуман формат %Z, который позволяет указать расположение книги без ее поиска, путем синтеза ссылки по заранее известному алгоритму. Т.е. книга не ищется как файл, а программа заранее знает, где может находиться файл.
Второй вариант, позволяющий программе без поиска находить книгу - сохранение полного пути к книге и имени файла. Всё это добро хранится в базе и вместо поиска извлекается запросом. Так же поиска не происходит, ссылка формируется программой по алгоритму Диск+путь+имя файла. Но... проблема в том, что это хранится в базе. Если путь большой - база разрастается. Да и ограничение на длину тоже не есть хорошо. Так что даже такие мелочи могут усложнить нам жизнь. Отсечь поиск - не производить реальный поиск на диске а формировать ссылку по заранее известному алгоритму.

Цитата PFN ()
Учитывая, что имеется до фига полезной литературы в форматах не fb2 и невозможность их конвертирования в fb2, то желательно...

я к тому, что жать многометровые файлы - затраты времени...

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

Цитата 1_абрам ()
Но м.б. я  не понимаю какие минусы у этого решения.

перепаковка...


drSerj
 
1_абрамДата: Пятница, 04.11.2016, 22:51 | Сообщение # 21
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Цитата drserj ()
перепаковка...
  Это при добавлении новоф  книги в библиотеку?

Добавлено (04.11.2016, 20:51)
---------------------------------------------
А я правильно понимаю, что если Флибуста прекратит свое существование  а  у пользователя сохранятся  все архивы , то вместо мультилиба можно будет использовать унилибс, т.к.  она будет удобнее и совершеннее мультилиба.

Сообщение отредактировал 1_абрам - Пятница, 04.11.2016, 22:48
 
drserjДата: Пятница, 04.11.2016, 23:09 | Сообщение # 22
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата 1_абрам ()
Это при добавлении новоф  книги в библиотеку?

как бы да...

Цитата 1_абрам ()
А я правильно понимаю, что если Флибуста прекратит свое существование  а  у пользователя сохранятся  все архивы , то вместо мультилиба можно будет использовать унилибс, т.к.  она будет удобнее и совершеннее мультилиба.

спорно... ведь у флибусты (как у либруса) база никуда не делась, по этому смысл импорта данных из файлов? 
Вот если за основу брать кучу книг, накачанных из разных источников - да, унилиб, возможно, будет удобнее. Впрочем, всё зависит от функционала. А до этого - далеко.


drSerj
 
PFNДата: Суббота, 05.11.2016, 14:16 | Сообщение # 23
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Отсечь поиск - не производить реальный поиск на диске а формировать ссылку по заранее известному алгоритму.

Конечно, этот вариант предпочтительнее. В своей программе я задействовал алгоритм, когда путь к файлу формируется таким образом:
1. Есть путь к файлам книг в библиотеке: BiblPath = "Е:\Книги". Это может храниться в ini-файле
2. А дальше: От фамилии автора отсекается первая буква и добавляется к BiblPath вместе с полным именем автора и именем файла:
Е:\Книги\А\Астахов Леонид\Астахов Леонид_Первый и  последний_Фэнтези.fb2 (Автор и имя файла - "от фонаря" smile )
Это при том, что здесь не используется БД.
А в запросе с параметрами - это вообще не проблема. Тем более, что все эти данные уже есть в базе (сужу по Мультилибу). Я за этот вариант!

Цитата drserj ()
А вообще, я бы не хотел, но что делать, если народ не захочет переделывать коллекцию а просто загнать данные в базу? Конечно, такое желание справедливо, но оно противоречит концепции программы.

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

Цитата drserj ()
Вот если за основу брать кучу книг, накачанных из разных источников - да, унилиб, возможно, будет удобнее.

Именно!!! В этом и должна состоять главная ценность Унилиба - выбрать из кучи и сохранить нужное, а остальное в топку!

Добавлено (05.11.2016, 12:16)
---------------------------------------------
Как и обещал, представляю на суд автора свои предложения. Просьба тапками не кидаться, т.к. это автора ни к чему не обязывает. smile

Странно, но не смог прикрепить файл .txt sad
Поэтому - вот ссылка: https://yadi.sk/i/yp7pK26Xy7U8y


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно


Сообщение отредактировал PFN - Суббота, 05.11.2016, 14:05
 
1_абрамДата: Суббота, 05.11.2016, 15:10 | Сообщение # 24
Генералиссимус
Группа: Друзья
Сообщений: 1207
Репутация: 0
Статус: Offline
Цитата drserj ()
спорно... ведь у флибусты (как у либруса) база никуда не делась, по этому смысл импорта данных из файлов?


Ты же вроде бы писал, что будет модуль экспорта из сетевых библиотек.

Добавлено (05.11.2016, 13:02)
---------------------------------------------
Еще предложение по формату.  М.б. сделать его однообразным, всегда добавлять fbd и для фб2.  Плюс модифицировать fbd,  сделав его по ГОСТ библиграфичской карточки.

Добавлено (05.11.2016, 13:10)
---------------------------------------------
Еще вариант навзвания программы:

unilibraro  (для звучности и  пропоганды эсперанто).

 
PFNДата: Суббота, 05.11.2016, 15:22 | Сообщение # 25
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата 1_абрам ()
unilibraro  (для звучности и  пропоганды эсперанто).

Не знаю, как это будет пропагандировать эсперанто, но у меня это название сразу вызвало ассоциацию с архиватором RAR smile


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Суббота, 05.11.2016, 16:46 | Сообщение # 26
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
2. А дальше: От фамилии автора отсекается первая буква и добавляется к BiblPath

Это всё прекрасно, но... кому-то захочется букву, кому-то две, кому-то слово... Или универсально или ничего. Иначе, только и буду, что добавлять варианты по просьбам... Подумываю про тэги... Хотя, может обойдемся 2 стандартами во избежание ? smile

Цитата PFN ()
Тогда пусть пользуются Мультилибом!

Да я вот тоже так думаю...

Цитата PFN ()
Как и обещал, представляю на суд автора свои предложения.

Спасибо, гляну...

Цитата 1_абрам ()
Ты же вроде бы писал, что будет модуль экспорта из сетевых библиотек.

угу... вопрос в том, что будет экспортироваться... Для решения этого вопроса надо основной модуль сначала иметь....

Цитата 1_абрам ()
Еще предложение по формату.  М.б. сделать его однообразным, всегда добавлять fbd и для фб2.  Плюс модифицировать fbd,  сделав его по ГОСТ библиграфичской карточки.

Не, ну это уже избыточно smile Если есть fbd - зачем база? Да и fbd, мне так пришло сейчас в голову, и нафиг не надо, его нужно генерировать в процессе копирования на устройство или экспорта... Зачем хранить и занимать место на диске?

Цитата PFN ()
Не знаю, как это будет пропагандировать эсперанто, но у меня это название сразу вызвало ассоциацию с архиватором RAR

одному мне всякие пошлости в голову лезут smile


drSerj
 
drserjДата: Суббота, 05.11.2016, 17:11 | Сообщение # 27
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата PFN ()
Поэтому - вот ссылка: https://yadi.sk/i/yp7pK26Xy7U8y

по структуре: данные, вытягиваемые из fb2 мы оставляем в покое и не обсуждаем. Сегодня не надо, завтра - понадобится. Не те объемы, что бы экономить.

TABLE `UlMain`.`ulusers`  - программа планируется многопользовательская, данные сугубо для программы.

TABLE `ulauthorname` и `ulauthor` - связные таблицы, так положено. Автора, переводчики, художники и т.д. различаются индексом, путаницы не будет. Поскольку структура таблиц идентична - нефиг плодить кучу дублей. Вопрос надобности - мне лично надо. Кстати, зачастую, один человек может выступать как автор, так и как переводчик. Зачем множить сущности...

TABLE `ulseqname` - да, больной вопрос про авторские издательские и пр. типы... рыдаю над темой лет десять... Возможность разделения - `seqtype`, дальнейшее дробление, как мне кажется, не имеет смысла. На флибусте оно связано с релевантностью, выглядит непонятно и бредово... Будем еще обсуждать более предметно.

Цитата
Может стоит подумать, чтобы список заполнялся из файла при загрузке программы?

Да оно так и делается, только из sql-файла... Вообще, это тема несколько отдельная, рассматривать ее надо гораздо более вдумчиво. Так же будем обсуждать более детально. 


Цитата
Пожелания:
==========
1. Возможность редактировать метаданные книги с внесением изменений и в книгу
2. Возможность при удалении книги из базы удалять файл и с диска (при желании)
3. Возможность полной очистки БД с обнулением индексов
4. Возможность открыть непосредственно из таблицы "Отсев", отсеянную по причине 
   "Ошибка разбора", книгу в редакторе NP++ или другом для испрвления ошибок.
   В крайнем случае перемещать такие книги в специальную директорию.


1. Всё моё естество противится этому smile Вот ведь проблема - занес книгу, посчитал мд5, сформировал каталоги, переименовал файл, скопировал в структуру... И после редактирования - всё по-новой? Ведь в процессе мд5 поменяется, ведь так? А соответственно, по скольку это основной идентификатор книги - придется отслеживать все списки, таблицы, выборки и т.д. где имеются упоминания об этом файле. Хочется редактировать - до помещения в базу! Потом - не стоит. Для этого есть база!.

Собственно, мы ломаем копья там, где нет в этом смысла. Программа - есть база, в которой хранятся все данные, которые изначально берутся из фб2 и потом, при необходимости правятся. Зачем еще и в книге их править? Вот возможность экспорта с корректными данными - да, может и нужно.... А вот оригинал портить - не стоит.

2. Таки да. При условии, что мультиархивов не будет.

3. грохни в каталоге базы файлы - полная очистка smile

4. что-то там было, не помню. Не проблема.


drSerj
 
PFNДата: Суббота, 05.11.2016, 17:11 | Сообщение # 28
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Хотя, может обойдемся 2 стандартами во избежание ?

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

Цитата drserj ()
одному мне всякие пошлости в голову лезут

Про другие ассоциации я деликатно промолчал... smile


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
drserjДата: Суббота, 05.11.2016, 17:11 | Сообщение # 29
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Наконец-то все в онлайне smile Чат что ль влепить на сайт... А то переписка в форуме крайне не эффективна, много времени тратится...

drSerj
 
PFNДата: Суббота, 05.11.2016, 17:35 | Сообщение # 30
Генерал-майор
Группа: Друзья
Сообщений: 206
Репутация: 0
Статус: Offline
Цитата drserj ()
Хочется редактировать - до помещения в базу! Потом - не стоит.

Я и имел ввиду, что этот процесс может быть реализован на этапе первичного (предварительного) отбора книг в базу. Просто выразился коряво...
Тут нам важны, прежде всего, 2 критерия:
1. Отсев дубликатов. Причем отсев тех, которые хуже экземпляра, находящегося в базе. К сожалению, это можно определить только визуально.
2. Валидность самой фб2-книги
 
Короче, я попробую быстро привести к более-менее приемлемому виду свою программку, которая этим занимается и выложу ее на Я-диск.
Так будет проще показать, чем расписывать весь процесс. Может что-то и пригодится...

Добавлено (05.11.2016, 15:35)
---------------------------------------------

Цитата drserj ()
Чат что ль влепить на сайт... А то переписка в форуме крайне не эффективна, много времени тратится...

Может и стоит, если обсуждение будет вестись так активно.


===============================
Приказ, который может быть понят неправильно, обязательно будет понят неправильно
 
Форум » Unilib » Проектирование и разработка » Обсуждение проекта (Обсуждение проекта)
Поиск:

Copyright LibRusLib © 2024