Каких-то дополнительных специфических атрибутов – по сравнению с «базовой» Unity – Collection не предполагает. Однако появляется некоторая поведенческая специфика:
– экземпляр Unity не может быть Collection для самого себя;
– удалён может быть только тот экземпляр Unity, который ни для кого более не является Collection.
То есть:
– связь collected_in объекта Unity не может указывать на самого себя;
– у удаляемого экземпляра Unity не должно быть связей collection_of.
Коллекции являются не некоей исключительной прерогативой хранимых единиц библиотечного фонда, а общим концептуальным конструктивным элементом структур данных, позволяющим организовывать иерархию объектов, и будут встречаться и в дальнейшем. Поэтому рассуждения о них и были выделены в отдельный пункт.
Имплементационно-специфичным моментом здесь является реализация связей (в случае Unity – collected_in и collection_of; далее встретятся и другие). В частности, в реляционных базах данных для этого могут быть использованы таблицы перекрёстных ссылок, позволяющие организовывать связи типа «многие ко многим» (many-to-many). Надо только не забывать регулировать взаимоотношения связанных объектов в базе при действиях над ними (On Update, On Delete) правилами – CASCADE, RESTRICT… – и всё получится.
Местоположение хранения (Placeholder)
Смешно, но понимание необходимости регистрации местоположения хранимой единицы – а этот атрибут уж никак не специфичен для библиотечного фонда, он обязателен для любого каталога – никак не найдёт своей дороги в массы. Пример: аптека в Минске (столица «незалежнай Беларусi»). Проверив по компьютерной базе (!) наличие запрошенного препарата, аптекарша долго роется наобум в ящиках стоящего у неё за спиной шкафа; утомившись, звонит своей напарнице-сменщице: «А где у нас …?» Сразу понимаешь, что эту аптечную систему не разрабатывали специалисты, а «распрацовывалi адукаваныя тутэйшыя фахоyцы»… но таков уж уровень Gebiet’а Ost.
А что касается места хранения единиц информации, то здесь очевидно наличие многоярусной иерархии.
Книга стоит на полке, полка принадлежит стеллажу, стеллаж расположен в комнате, комната имеет положение в здании (этаж + номер), у здания есть конкретный адрес: номер, улица, город, страна…
Вы ознакомились с фрагментом книги.
Приобретайте полный текст книги у нашего партнера: