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

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

СКАЧАТЬ вариант формата char, потребовалось бы поле длиной в десять байт. Уникальность значений легко обеспечивается автоинкрементом (большинство современных реляционных баз данных обеспечивают это на стороне сервера БД – достаточно задать полю соответствующее свойство). Для быстрого поиска идентификатора в таблице по этому полю должен существовать индекс.

      И, естественно, поле идентификатора должно быть заполнено всегда.

      Unity::code

      Уникальный библиотечный код – своего рода инвентарный номер, присваиваемый хранимой единице (книге, журналу и т. п.) при поступлении в фонд библиотеки.

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

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

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

      Unity::name

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

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

      Индексация СКАЧАТЬ