На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Реестр почти без программирования, или 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, теория программирования, решение задач

Читайте также:




Создание анимации в Unity3d на C#
Перехватываем нажатия клавиш в C#


© upread.ru 2013-2020
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.