Книга: Основы программирования в Linux
Обновление проектного решения
Обновление проектного решения
Поскольку обновление предполагает значительную корректировку, сейчас самое время взглянуть на проектные решения, чтобы выяснить, не нуждаются ли они в пересмотре. Использование файлов с запятыми в качестве разделителей полей для хранения информации, хотя и обеспечивает легкую реализацию средствами командной оболочки, оказывается связанным со многими ограничениями. Во множестве заголовков компакт-дисков и дорожек встречаются запятые. Вы можете полностью отказаться от этого метода разделения, применив dbm, таким образом, у нас появился один компонент проектного решения, который придется менять.
Разделение информации на заголовки и дорожки с применением отдельного файла для хранения каждого вида данных кажется хорошим решением, поэтому вы можете сохранить эту логическую структуру.
В обеих предыдущих реализациях части приложения, относящиеся к доступу к данным, до некоторой степени смешаны с частями пользовательского интерфейса, нельзя сказать, что незначительно, потому что все приложение реализовано как единый файл. В данной реализации вы примените заголовочный файл для описания данных и подпрограммы для доступа к ним и разделите пользовательский интерфейс и манипулирование данными на два отдельных файла.
Несмотря на то, что вы могли бы сохранить реализацию пользовательского интерфейса средствами библиотеки curses, вы вернетесь к построчной системе. Такой подход позволит сохранить часть приложения, связанную с пользовательским интерфейсом, маленькой и простой и сосредоточиться на других аспектах реализации.
С базой данных dbm вы не сможете применять язык SQL, но опишите новую базу данных с помощью более формальных терминов, используя терминологию языка SQL. Не волнуйтесь, если вы не знакомы с этим языком, мы поясним все определения, а в главе 8 вы узнаете о нем больше. В программном коде таблица может быть описана следующим образом:
CREATE TABLE cdc_entry (
catalog CHAR(30) PRIMARY KEY REFERENCES cdt_entry(catalog),
title CHAR(70),
type CHAR(30),
artist CHAR(70)
CREATE TABLE cdt_entry (
catalog CHAR(30) REFERENCES cdc_entry(catalog),
track_no INTEGER,
track_txt CHAR(70),
PRIMARY KEY(catalog, track_no)
Это очень краткое описание сообщает имена и размеры полей. В таблице cdc_entry
у каждого элемента есть уникальный столбец каталога catalog
. В таблице cdt_entry
номер дорожки не может быть нулевым и комбинация столбцов catalog
и track_no
уникальна. Вы увидите их определение в виде структур typedef struct
в следующем разделе программного кода.
- Ускоренное обновление данных
- 11.2. Технология принятия решения в условиях чрезвычайной ситуации
- Запросы на обновление
- Управление пользователями и разрешениями узла
- Как не запутаться в разрешениях доступа к файлам?
- 3.8. Обновление ядра
- 3.8.2. Обновление ядра из RPM-пакета
- «Если бы у вас была волшебная палочка, что бы вы сделали для решения проблемы?»
- Обновление Dr.Web
- Автоматическое обновление
- Обновление драйверов
- Приложение 2. Досье на лицо, принимающее решения (ЛПР)