создание базы данных libreoffice Учет компьютеров ...
Creato il: 20 maggio 2025
Creato il: 20 maggio 2025
создание базы данных libreoffice Учет компьютеров на предприятии
Ниже — пошаговое практическое руководство по созданию в LibreOffice Base полноценной базы «Учёт компьютеров на предприятии». Я старался держать всё на одном уровне сложности: достаточно подробно, чтобы можно было повторить, но без избыточных деталей.
Таблица | Назначение | Ключевые поля |
---|---|---|
Departments | Подразделения/отделы | DeptID (PK), Name, Manager |
Locations | Физические площадки и кабинеты | LocID (PK), Bldg, Room, Notes |
Employees | Пользователи, ответственные лица | EmpID (PK), FullName, Position, DeptID (FK) |
Computers | Основная инвентарная карточка ПК | PCID (PK), InvNumber, SerialNumber, Model, CPU, RAM_GB, HDD_GB, PurchaseDate, WarrantyUntil, DeptID (FK), LocID (FK), EmpID (FK) |
Software | Каталог ПО | SoftID (PK), Name, Version, LicenseType |
PC_Software | Связь «многие-ко-многим» ПК ↔ ПО | PCID (FK), SoftID (FK), LicenseKey, InstallDate |
Maintenance | Ремонт, апгрейд, проверки | MaintID (PK), PCID (FK), Date, Action, Cost, Notes |
Почему так:
•Departments
+Locations
упрощают групповые отчёты.
•Employees
даёт связь с ответственными.
•PC_Software
реализует N:M без дублирования.
•Maintenance
хранит историю работ.
Откройте LibreOffice Base → Файл → Создать → База данных.
Тип СУБД: «Встроенная Firebird» (новее, не требует внешних драйверов).
Сохраните файл базы, например IT_Inventory.fdb.
Поочерёдно создавайте таблицы через «Режим дизайна»:
Отношения: меню Сервис → Отношения. Добавьте все таблицы и соедините FK с соответствующими PK (линии «1-∞»). Поставьте «Обеспечивать целостность данных» и, при желании, «Каскадное обновление/удаление».
Departments
, Locations
, Software
, затем Employees
.Computers
, выбирая значения справочников из выпадающих списков (если сделаете формы, см. ниже).Computers
+ связанные Employees
, Locations
.PC_Software
— по полю PCID
; в ней будет видно установленные программы.Maintenance
, чтобы сразу видеть историю.Совет: после работы мастера откройте форму в режиме дизайна и:
• установите у полей «List Box» вместо «Text Box» (источник — соответствующая справочная таблица) для DeptID, LocID, EmpID.
• добавьте фильтр-кнопку «Только в к работе» (пример макроса — в конце).
Цель | Пример SQL |
---|---|
Все ПК отдела «IT» | SELECT c.InvNumber, c.Model, e.FullName FROM Computers c JOIN Employees e ON c.EmpID=e.EmpID JOIN Departments d ON c.DeptID=d.DeptID WHERE d.Name='IT'; |
ПК с гарантией, истекающей в 30 дней | SELECT InvNumber, WarrantyUntil FROM Computers WHERE WarrantyUntil BETWEEN CURRENT_DATE AND CURRENT_DATE + 30; |
ТО или ремонт за квартал | SELECT m.Date, c.InvNumber, m.Action, m.Cost FROM Maintenance m JOIN Computers c ON m.PCID=c.PCID WHERE m.Date BETWEEN DATE '2025-04-01' AND DATE '2025-06-30'; |
Лицензии, требующие продления | (если храните ExpiryDate) аналогично предыдущему |
Через Создать → Отчёт (мастер):
Departments.Name
).NextMaintenanceDate
.PC_Software
+ Software
.basicREM NB: включите меню Инструменты → Макросы → Организовать Sub FilterMyPCs Dim oForm As Object oForm = ThisComponent.DrawPage.Forms.getByName("MainForm") oForm.Filter = "EmpID = " & GetUserEmpID() oForm.ApplyFilter = True End Sub Function GetUserEmpID() As Long 'Заглушка: верните ID текущего пользователя, 'например, прочитав его из таблицы Employees GetUserEmpID = 7 End Function
Прикрепите макрос к кнопке на форме для быстрой фильтрации.
Следуя этим шагам, вы получите надёжную, масштабируемую и достаточно удобную систему учёта ПК:
✔ гибкие формы → быстрый ввод
✔ отчёты → контроль парка
✔ история обслуживания → плановое ТО
Если понадобится:
*— добавить поле «Списан» (Boolean) в Computers
;
*— перенести на сервер Firebird/PostgreSQL для многопользовательского режима (LibreOffice Base подключается как клиент).
Удачной работы!