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