Вечный двигатель третьего рода. Неканонические размышления о бизнес-системах, или О чём стоит сначала подумать. Модели данных и бизнес-логика. Олег Анатольевич Мостовлянский

Читать онлайн книгу.

Вечный двигатель третьего рода. Неканонические размышления о бизнес-системах, или О чём стоит сначала подумать. Модели данных и бизнес-логика - Олег Анатольевич Мостовлянский


Скачать книгу
конкретный размер поля не предлагается. В принципе, если это целесообразно, то вместо одного поля (атрибута) может быть несколько – по числу обязательных частей; полный код в таком случае собирается из этих полей по соответствующему правилу.

      Естественно, код должен быть уникальным. Однако, учитывая специфику предлагаемой модели данных, а именно: то, что единица информации может быть одновременно собранием (коллекцией) единиц, – это поле может оставаться незаполненным. Может и вообще отсутствовать – если система учёта в конкретной библиотеке такого кода не предусматривает.

      Для возможности быстрого поиска, сортировки и группировок по коду – индексация.

      Unity::name

      Имя хранимой единицы. Название книги, рукописи, имя файла и т. п. Также – в случае сборников-коллекций – наименование собрания сочинений, серии книг («Миры Клиффорда Саймака», например, или «Мир приключений»), журнала (элементы коллекции – отдельные номера) и т. д.

      Значение поля может быть (и чаще всего так оно и есть) не уникальным, однако – в отличие от библиотечного кода – оно должно быть обязательно. Насчёт длины поля (поле, естественно, должно быть произвольно-символьным) чёткие рекомендации давать трудно… приведу пример названия одного широко известного произведения (которое вполне может встречаться в виде отдельной книги): «Жизнь, необыкновенные и удивительные приключения Робинзона Крузо, моряка из Йорка, прожившего 28 лет в полном одиночестве на необитаемом острове у берегов Америки близ устьев реки Ориноко, куда он был выброшен кораблекрушением, во время которого весь экипаж корабля кроме него погиб, с изложением его неожиданного освобождения пиратами; написанные им самим». В этом плане проще с именами файлов: операционные системы налагают конкретные ограничения на их длину (Unix – 255, Windows – 257, Mac OS X – 256 символов соответственно). В зависимости от конкретной задачи – т. е., планируемого основного содержания библиотеки и платформы реализации – string может быть реализован, например, как TEXT, CHAR (n) либо VARCHAR (n), где n – длина поля.

      Индексация по этому полю желательна как для возможности сортировки по алфавиту, так и для структурного поиска (по вхождению слов). Частный пример реализации второго случая – использование DB2 Text Extender.

      Unity::path

      Местоположение хранимой единицы. Как и в случае библиотечного кода, формат данного поля представлен чисто условно. В реальной системе это должен быть либо конкретный адрес, где находится книга (либо другой хранимый объект) – комната, шкаф/стеллаж, полка/ячейка, – и тогда рациональней использовать набор из нескольких полей (атрибутов), либо путь к файлу – тогда, как и для поля name, будут действовать зависящие от платформы реализации ограничения на длину. Но и в этом случае – поскольку полный путь включает сетевое имя сервера (или сетевого диска; или локального диска – если сервер один) и иерархию каталогов – удобнее всё же будет использовать набор полей.

      Естественно, требование уникальности неприменимо


Скачать книгу