Всім привіт, продовжую обдумувати та розробляти універсальну систему, і сьогодні хочу поділитись деякими думками на рахунок створення адмінки.
Отже, саме перше: за що повинна відповідати адмінка? Визначу по пунктах:
- робота з БД (настройки підключення, резервне копіювання, відновлення з резервної копії та інші функції адміністрування)
- робота з користувачами (призначення прав, ролей, груп)
- робота з модулями системи (призначення прав, створення потрібних таблиць, прописування залежностей, керування оновленнями)
Це будуть основні задачі, розбиті на розділи. Враховуючи специфіку цих задач (кожну з них детально я буду розглядати в процесі реалізації необхідного функціоналу), звичайному користувачу доступ не бажаний - можна натворити багато чого не лише небезпечного, а й пошкодити саму БД. На стороні звичайного користувача достатньо буде лише роботу в автоматичному режимі з локальним фрагментом БД, яка буде синхронізувати дані з сервером (і задавати налаштування підключення до центральної БД, з якою буде відбуватись синхронізація). До речі, щоб на клієнтських машинах не встановлювати повністю сервер Firebird (або використовувати його Embedded версію) я вирішив використовувати БД SQLite3 - легку однокористувацьку БД, для роботи з якою достатньо лише одного файлу на відміну від Firebird. Звісно, є певні відмінності при роботі з цими БД, але я маю досвід використання їх обох (на SQLite3 працює моя програма тарифікації для медичних закладів, яка використовувалась понад десятком закладів по всій Україні).
Рис. 1.1. Інтерфейс адмінки після запуску |
Рис. 1.2. Інтерфейс адмінки після підключення БД |
Тепер розгляну кожен розділ більш детально. Самим першим пунктом йде робота з базою даних. Саме тут можна буде підключатись до БД на сервері, включати або відключати можливість ведення логів при роботі з БД, виконувати архівне копіювання та відновлення БД та виконувати усі необхідні операції адміністрування, включаючи виконання SQL-запитів як з файлів, так і введених вручну. Спробую спроектувати інтерфейс такого діалогу.
Мій варіант реалізації буде за допомогою вікна з кількома вкладками, на кожній з яких згруповані відповідні підзадачі. На першій вкладці будуть налаштування підключення до головної БД та БД логування (Рис. 2.1.).
Після успішного підключення до головної БД розблоковуються кнопки головного вікна для режимів керування користувачами і модулями (Рис. 1.2.). При активації форми настройки завантажуються з файла, а при натисненні кнопки "ОК" - записуються в файл налаштувань. По кнопці "БД Інфо" буде виводитись вікно зі службовою інформацією про сервер БД та саму БД. В тому випадку, якщо в підключеній БД відсутні службові таблиці для роботи системи, буде виводитись відповідне повідомлення та стане доступною кнопка "Ініціалізація БД", по натисненні на яку такі таблиці будуть створюватись.
Код, який відповідає за все вище описане, досить рутинний, тому не буду детально на ньому зупинятись. Кому цікаво подивитись сирці, після завершення роботи над адмінкою викладу все на Гітхаб, про що повідомлю додатково.Рис.2.1. Налаштування підключення до БД та логування |
На сьогодні буде все, а наступного разу спробую доробити виведення інформації про сервер та БД, а також початкову ініціалізацію БД.
P.S. Не маючи ніякої кращої ідеї, поки що система називається "OpenIS" (можливо, все-таки не система, а платформа?), а функціонал для медичних закладів, який ще в процесі проектування, має кодову назву "Гіппократ". Можливо, хтось запропонує кращі назви? Пишіть в коментарях!