Реестр почти без программирования, или KISS


В проектировании есть такой принцип – KISS (акроним Keep it simple, stupid) – переводится по-разному, но лично мне нравится такой вариант: сделай это проще, глупый. Смысл принципа в том, что не следует все чересчур усложнять; лучше искать простые решения. Для программирования тоже нередко полезно придерживаться такого принципа. Точнее, для задач, возникающих перед программистом. Иногда вообще можно решить задачу почти без программирования – вот о таком случае я и расскажу.

Итак, написал мне заказчик, что у него есть анкета для формирования базы данных и регистра пациентов. Нужно создать электронный вариант этого регистра так, чтобы можно было все считать и обновлять. То есть фактически требуется создать небольшое приложение для отдельного компьютера, в котором человек сможет заносить данные, редактировать их и получать статистику по определенным параметрам.

Первое, что приходит в голову – это набросать СУБД для работы с файлом данных. Например, взять WinForms и SQLite – создать подключение, занесение данных, вывод их в таблицу, поиск по параметрам – все это, в общем, несложно и делается но есть небольшая проблема – подбор библиотеки для конкретной операционной системы (а тут программа должна была работать на двух компьютерах с разными ОС). Понятно, что это решается, но может можно проще?

Можно. Так как работать мы будем с относительно небольшим объёмом данных (число пациентов вряд ли будет исчисляться миллионами, заказчик говорил о нескольких сотнях максимум), то почему бы не хранить всю информацию в файле? Даже в обычном текстовом, например, csv. Получение-запись данных в такой файл, например, на языке C# - это распространённая задача. Отлично!

Но вот если заказчику потребуется изменить структуру информации? Добавить поля, обработку – придётся либо переписывать (и, соответственно, перекомпилировать) программу, либо усложнять – делать больше опций. Может быть, можно еще проще? В конце концов у нас не студенческий проект, а приложение для реальной работы и почему бы не посмотреть в сторону готовых СУБД? Например, Microsoft Office Access.

И тут все получается предельно просто: создаем форму и несколько запрсоов, потом все это вместе складываем. База данных и управление ей все оказывается в одном файле, который откроется на любой Windows, имеющей эту самую Microsoft Office Access на борту. Правда, стоит учесть версию – ну, сделаем пониже, самые последние возможности нам не нужны.

Сначала таблица. С помощью конструктора делается очень просто:



Дальше пишем запросы, используя немного программирования (SQL). Например, вот запрос, получающий число мужчин в таблице (БД):

SELECT First(Таблица1.Пол) AS [Пол поле], Count(Таблица1.Пол) AS Повторы
FROM Таблица1
GROUP BY Таблица1.Пол
HAVING (((Count(Таблица1.Пол))>1));
В подформу вставляем этот запрос:



Теперь создаем форму и набрасываем на неё все, что требуется. В итоге получается, что можно заносить данные сразу, менять их, смотреть статистику:



И еще одно важное преимущество – можно написать инструкцию к данной программе и научить с помощью неё заказчика самостоятельно создать запросы, новые поля для пациентов или статистики.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, базы данных, sql, теория программирования, решение задач




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Что такое IPFS?
Урок 26. Ключевое слово switch в JavaScript
C#: объединение текстовых файлов с одинаковыми именами из разных папок