Update OPDS_LIBRARY_CONTEXT.md
This commit is contained in:
1 parent
a51a7e1a76
commit
893e3fe3d8
1 file changed
+8
-9
@@ -53,7 +53,7 @@
|
|||||||
| `book_genres` | Связь книг↔жанров (book_id, genre_id) |
|
| `book_genres` | Связь книг↔жанров (book_id, genre_id) |
|
||||||
|
|
||||||
**Особенности:**
|
**Особенности:**
|
||||||
- Полнотекстовый поиск через `fts tsvector` (русский язык)
|
- Полнотекстовый поиск через `tsvector` + GIN-индексы (русский язык)
|
||||||
- Хеши (MD5) для быстрого поиска
|
- Хеши (MD5) для быстрого поиска
|
||||||
- Поле `source` для поддержки нескольких источников
|
- Поле `source` для поддержки нескольких источников
|
||||||
- Нормализация: авторы/серии/жанры вынесены в отдельные таблицы
|
- Нормализация: авторы/серии/жанры вынесены в отдельные таблицы
|
||||||
@@ -107,16 +107,15 @@ AUTHOR \x04 GENRE \x04 TITLE \x04 SERIES \x04 SERNO \x04 FILE \x04 SIZE \x04 LIB
|
|||||||
- Вложенность: до 3 уровней
|
- Вложенность: до 3 уровней
|
||||||
- RAR: бонусная поддержка
|
- RAR: бонусная поддержка
|
||||||
|
|
||||||
### Таблица `file_scan_log`
|
### Структура хранения (финальное решение)
|
||||||
| Поле | Тип | Назначение |
|
- **file_scan_log** хранит архивы: `archive_path`, `archive_hash` (хэш всего ZIP), `file_size`, `updated_at`
|
||||||
|------|-----|-----------|
|
- **books** хранит: `archive_path` + `fb2_name` (путь к FB2 внутри архива)
|
||||||
| file_path | TEXT | Полный путь к файлу |
|
- При удалении архива → удаляем все книги из этого архива
|
||||||
| file_size | INTEGER | Размер файла |
|
- При изменении архива → удаляем старые книги, парсим заново
|
||||||
| file_hash | TEXT | MD5/SHA256 хеш содержимого |
|
- Дубликаты с одинаковым содержимым не вызывают лишней работы (проверка по хэшу архива)
|
||||||
| updated_at | TIMESTAMP | Последнее обновление |
|
|
||||||
|
|
||||||
### Удаление книг
|
### Удаление книг
|
||||||
- Файл исчез с диска → книга удаляется из БД безвозвратно
|
- Файл (архив) исчез с диска → книги удаляются из БД безвозвратно
|
||||||
- Файл изменён → старые книги удаляются, парсится заново
|
- Файл изменён → старые книги удаляются, парсится заново
|
||||||
|
|
||||||
### Источник
|
### Источник
|
||||||
|
|||||||
Reference in new issue
Block a user