powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для библиотеки. Как бы вы сделали?
10 сообщений из 10, страница 1 из 1
Структура БД для библиотеки. Как бы вы сделали?
    #34408940
Aiven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем нужно сделать АИБС (автоматизированную библиотечно-информационную систему). Библиографические данные имеют ряд особенностей:
а) Разнородная информация - статьи, книги, карты, атласы, периодика, многотомники,...
б) Большое число полей, которые могут быть в количестве от 0 до бесконечность (теоретически) - есть специальные форматы для описания этих полей (симейство форматов MARC).
Соответственно возникают некоторые проблемы с реализацией всего этого в реляционной базе - больое кол-во таблиц, полей, связей,...

В коммерческих продуктов (MarcSQL, "Библиотека") используется несколько другой подход. Все поля библиографической записи храняться в одном поле типа Блоб. Запись сжимается, поля помечаются специальными тегами. Для поиска ведуться специальные таблицы с отношением многие ко многим с главной таблицей с записями (так называемые индексные таблицы, заполняются программно). Для отображения найденная запись расжимаеться, форматируется изображение.

Итак, есть два подхода:
1) разложить по таблицам все поля.
2) все поля в одном поле.

Хотелось бы подискутировать на эту тему - как лучще, может кто сталкивался.

PS. Сделал по 2-му варианту, но из-за кривизны структуры постоянно чешуться руки переделать.
PSS. SQL SERVER 2000.
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34408995
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AivenХотелось бы подискутировать на эту тему - как лучще, может кто сталкивался.
Задача "дополнительной классификации" достаточно характерна; суть - к объекту добавляется некоторое количество "сугубо информационных" полей, этаких memo, не важных в контексте основных бизнес-процессов, но используемых для поиска и вывода информации пользователю.

Для таких полей довольно естественными являются решения на основе тех или иных гибких форматов, скажем EAV или XML. Описанный Вами второй подход - примерно то же, но "велосипед собственными руками"; необходимости в нем особо не видно.

Первый подход - с разложением по полям - также вполне применим, возможно в сочетании с ядром, позволяющим досоздавать в таблицах нужные поля. В принципе это более тяжелое, но и более мощное решение, позволяющее естественным образом использовать возможности РСУБД - скажем, делать такое поле внешним ключом. Соответственно, подход начинает выигрывать в тех случаях, когда функционирование приложения, бизнес-логика таки существенно завязаны на эти поля.
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409041
Aiven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОписанный Вами второй подход - примерно то же, но "велосипед собственными руками"; необходимости в нем особо не видно.
Интересно, почему тогда коммерческие продукты пользуются этим подходом?
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409095
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AivenИнтересно, почему тогда коммерческие продукты пользуются этим подходом?
Гадать можно сколько угодно. Например, может быть потому, что во времена их создания в СУБД еще не было адекватных средств работы с XML.
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409135
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Библиография сто лет так работает.
Так называемый конкорданс - типа индекс к виртуальным таблицам:

Документ/Поле(тег)/Значение,
Элемент документа(абзац, фраза)/Поле(тег)/Значение.

Ну и специализированный поиск по конкордансу - слова в одной фразе, документе в целом и проч.
Cравнение на больше-меньше - уже признак продвинутой системы:)

Приблизительно конечно.

Если пользоваться общепромышленными СУБД есть смысл посмотреть на Oracle Text. Тоже автоматизирует ведени подобных индексов по текстовым полям.
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409227
Aiven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНапример, может быть потому, что во времена их создания в СУБД еще не было адекватных средств работы с XML.
Как тут можно прикрутить XML? Думаю если саму запись хранить в формате XML можно облегчить вывод на WEB страницу с помощью шаблона XST. Или еще что-то?
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409250
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Так называемый конкорданс

Как связаны конкорданс и каталогизация, можно поинтересоваться?
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409418
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409488
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Например

И каким боком здесь каталогизация?
...
Рейтинг: 0 / 0
Структура БД для библиотеки. Как бы вы сделали?
    #34409620
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AivenКак тут можно прикрутить XML? Думаю если саму запись хранить в формате XML можно облегчить вывод на WEB страницу с помощью шаблона XST. Или еще что-то?
Cаму запись - не стоит, а вот ее "гибкую необязательную часть" - почему бы и нет? Автоматом снимаются все вопросы по поводу форматов, множественных признаков итп, целостность проверяется xml схемой, для поиска по атрибутам проработаны технологии индексирования, вывод в интерфейс также несложно делается универсальным. Что еще нужно?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для библиотеки. Как бы вы сделали?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]