Files
quality_app/DATABASE_VISUAL_STRUCTURE.md
Quality App System f590d9006c updated documentation
2026-01-15 19:27:58 +02:00

31 KiB

Instalare Quality Miercurea

user : adminviorica

parola admin : 7aTwBPA7Z6bZ

folder de instalare : /opt/quality-app

multiple request are blocking the socket

Database Visual Structure - Trasabilitate Quality App

Database: trasabilitate (MariaDB 11.8.3)
Total Tables: 17
Character Set: utf8mb4
Date: January 10, 2026


1. Database Schema Overview

╔═══════════════════════════════════════════════════════════════════════════╗
║                           TRASABILITATE DATABASE                          ║
╠═══════════════════════════════════════════════════════════════════════════╣
║                                                                            ║
║  ┌─────────────────────────────────────────────────────────────────────┐  ║
║  │               USER MANAGEMENT & ACCESS CONTROL (6 tables)          │  ║
║  │                                                                     │  ║
║  │  • users                    • roles                                │  ║
║  │  • role_hierarchy           • permissions                          │  ║
║  │  • role_permissions         • permission_audit_log                 │  ║
║  └─────────────────────────────────────────────────────────────────────┘  ║
║                                                                            ║
║  ┌─────────────────────────────────────────────────────────────────────┐  ║
║  │          QUALITY MANAGEMENT / PRODUCTION SCANNING (2 tables)       │  ║
║  │                                                                     │  ║
║  │  • scan1_orders (Phase 1 - Quilting)                              │  ║
║  │  • scanfg_orders (Final Goods Quality)                            │  ║
║  └─────────────────────────────────────────────────────────────────────┘  ║
║                                                                            ║
║  ┌─────────────────────────────────────────────────────────────────────┐  ║
║  │    DAILY MIRROR / BUSINESS INTELLIGENCE (7 tables)                │  ║
║  │                                                                     │  ║
║  │  • dm_articles              • dm_machines                          │  ║
║  │  • dm_customers             • dm_orders                            │  ║
║  │  • dm_production_orders     • dm_deliveries                        │  ║
║  │  • dm_daily_summary                                                │  ║
║  └─────────────────────────────────────────────────────────────────────┘  ║
║                                                                            ║
║  ┌─────────────────────────────────────────────────────────────────────┐  ║
║  │         LABELS & WAREHOUSE (2 tables)                             │  ║
║  │                                                                     │  ║
║  │  • order_for_labels         • warehouse_locations                 │  ║
║  └─────────────────────────────────────────────────────────────────────┘  ║
║                                                                            ║
╚═══════════════════════════════════════════════════════════════════════════╝

2. Entity Relationship Diagram (ERD)

┌──────────────────────────────────────────────────────────────────────────────────┐
│                    USER MANAGEMENT HIERARCHY                                      │
└──────────────────────────────────────────────────────────────────────────────────┘

    ┌─────────────┐         ┌──────────────┐       ┌────────────────┐
    │   users     │─────────│   roles      │───────│ role_hierarchy │
    └─────────────┘         └──────────────┘       └────────────────┘
         (id)                      (id)                    (id)
         username           name (referenced)       role_name (PK)
         password           access_level            level (100-50)
         role ←─────────────────────┐               parent_role
         email                      │               description
         modules (JSON)             │
                                    │
                                    └─── hierarchy level
                                         (100=superadmin)
                                         (90=admin)
                                         (70=manager)
                                         (50=worker)

    ┌────────────────┐       ┌──────────────┐       ┌─────────────────────┐
    │ permissions    │       │ role_        │       │ permission_         │
    └────────────────┘       │ permissions  │       │ audit_log           │
         (id)         ◄──────└──────────────┘──────►└─────────────────────┘
         permission_key      (M:M mapping)         (audit trail)
         page              role_name ──┐
         section           permission_ │
         action            id          │
         description       granted_at  │
                           granted_by  │
                                       │
                                 Tracks permission
                                 changes for security


┌──────────────────────────────────────────────────────────────────────────────────┐
│               BUSINESS INTELLIGENCE / DAILY MIRROR (DM)                           │
└──────────────────────────────────────────────────────────────────────────────────┘

                          MASTER DATA (Reference Tables)
                          
    ┌──────────────┐      ┌──────────────┐      ┌──────────────┐
    │ dm_articles  │      │ dm_customers │      │ dm_machines  │
    ├──────────────┤      ├──────────────┤      ├──────────────┤
    │ article_code │      │customer_code │      │machine_code  │
    │ description  │      │customer_name │      │machine_name  │
    │ product_    │      │customer_group│      │machine_type  │
    │   group      │      │country       │      │department    │
    │ unit_of_     │      │currency      │      │capacity_per_ │
    │   measure    │      │credit_limit  │      │   hour       │
    └──────────────┘      └──────────────┘      └──────────────┘
           △                      △                      △
           │                      │                      │
           │                      │                      │
    ┌──────┴──────────────────────┴──────────────────┬──────────┐
    │                                                │          │
    │                          TRANSACTIONAL DATA    │          │
    │                                                │          │
    │  ┌─────────────────────┐    ┌──────────────────┴────────┐ │
    │  │   dm_orders         │    │ dm_production_orders      │ │
    │  ├─────────────────────┤    ├───────────────────────────┤ │
    │  │ order_id            │    │ production_order (PK)     │ │
    │  │ order_line          │    │ production_order_line     │ │
    │  │ customer_code ◄─────┼────│ customer_code ◄──────────┤ │
    │  │ article_code ◄──────┼────│ article_code ◄────────────┤ │
    │  │ quantity_requested  │    │ machine_code ◄────────────┤ │
    │  │ delivery_date       │    │ quantity_requested        │ │
    │  │ order_status        │    │ opening_date              │ │
    │  │ production_order    │────│ closing_date              │ │
    │  │   (links to PO) ────┘    │ production_status         │ │
    │  │ production_status   │    │ PHASE TRACKING:           │ │
    │  │ created_at          │    │ • phase_t1_prepared      │ │
    │  └─────────────────────┘    │ • phase_t2_cut           │ │
    │                             │ • phase_t3_sewing        │ │
    │                             │ (with operator names &    │ │
    │                             │  registration dates)      │ │
    │                             │ created_at                │ │
    │                             └───────────────────────────┘ │
    │                                        │                   │
    │                                        │                   │
    │                     ┌──────────────────┴────────┐          │
    │                     │                           │          │
    │  ┌──────────────────┴──┐           ┌───────────┴────────┐ │
    │  │   dm_deliveries     │           │  QUALITY SCANS    │ │
    │  ├─────────────────────┤           │                   │ │
    │  │ shipment_id         │           │ • scan1_orders    │ │
    │  │ order_id ◄──────────┼───────────┤   (T1/Quilting)  │ │
    │  │ customer_code ◄─────┼───────────┤                   │ │
    │  │ article_code ◄──────┼───────────┤ • scanfg_orders   │ │
    │  │ quantity_delivered  │           │   (Final Goods)   │ │
    │  │ shipment_date       │           │                   │ │
    │  │ delivery_date       │           │ COMMON FIELDS:    │ │
    │  │ delivery_status     │           │ • operator_code   │ │
    │  │ total_value         │           │ • CP_full_code ───┼──┐
    │  │ created_at          │           │ • quality_code    │  │
    │  └─────────────────────┘           │ • approved_qty    │  │
    │                                     │ • rejected_qty    │  │
    │                                     │ • date, time      │  │
    │                                     └───────────────────┘  │
    │                                                             │
    │                             AGGREGATED KPIs                │
    │                                                             │
    │                     ┌──────────────────────────┐           │
    │                     │   dm_daily_summary       │           │
    │                     ├──────────────────────────┤           │
    │                     │ report_date (PK)         │           │
    │                     │ orders_received          │           │
    │                     │ production_launched      │           │
    │                     │ production_finished      │           │
    │                     │ t1_scans_total           │           │
    │                     │ t1_scans_approved        │           │
    │                     │ t1_approval_rate         │           │
    │                     │ t2_scans_total           │           │
    │                     │ t2_approval_rate         │           │
    │                     │ t3_scans_total           │           │
    │                     │ t3_approval_rate         │           │
    │                     │ orders_shipped           │           │
    │                     │ orders_delivered         │           │
    │                     │ on_time_deliveries       │           │
    │                     │ delivery_value           │           │
    │                     │ active_operators         │           │
    │                     │ (aggregated daily via    │           │
    │                     │  batch process)          │           │
    │                     └──────────────────────────┘           │
    │                                                             │
    └─────────────────────────────────────────────────────────────┘


┌──────────────────────────────────────────────────────────────────────────────────┐
│                      LABELS & WAREHOUSE MANAGEMENT                                │
└──────────────────────────────────────────────────────────────────────────────────┘

    ┌──────────────────────┐
    │ order_for_labels     │
    ├──────────────────────┤
    │ id                   │
    │ comanda_productie    │──────────────┐
    │ cod_articol          │              │
    │ descr_com_prod       │              │
    │ cantitate            │              │
    │ com_achiz_client     │              │  Links to
    │ nr_linie_com_client  │              │  dm_production_orders
    │ customer_name        │              │  (production_order)
    │ customer_article_num │              │
    │ open_for_order       │              │
    │ printed_labels (0/1) │              │
    │ data_livrare         │              │
    │ dimensiune           │              │
    │ created_at           │              │
    │ updated_at           │              │
    └──────────────────────┘              │
                                          │
                                          ▼
                            ┌──────────────────────────┐
                            │ dm_production_orders     │
                            │ (production_order field) │
                            └──────────────────────────┘

    ┌──────────────────────┐
    │warehouse_locations   │
    ├──────────────────────┤
    │ id                   │
    │ location_code        │
    │ size                 │
    │ description          │
    └──────────────────────┘
         (standalone)

3. Table Summary by Category

📋 User Management & Access Control (6 tables)

Table Records Purpose Key Field
users ~50-100 User accounts & authentication id, username
roles 4 Role definitions id, name
role_hierarchy 4 Hierarchical role structure role_name
permissions 50-100+ Granular permission definitions id, permission_key
role_permissions 100-200 Role→Permission mapping role_name, permission_id
permission_audit_log 1000+ Permission change audit trail id

Access Levels:

  • 100 = superadmin (Full access)
  • 90 = admin (Administrative)
  • 70 = manager (Module management)
  • 50 = worker (Basic operations)

🔍 Quality Management / Production Scanning (2 tables)

Table Records Purpose Key Field
scan1_orders 10,000+ Phase 1 quality scans (T1/Quilting) Id (PK), CP_full_code (FK)
scanfg_orders 5,000+ Final goods quality scans Id (PK), CP_full_code (FK)

Common Fields (both tables):

  • operator_code - Worker identifier (4 char)
  • CP_full_code - Production order reference
  • quality_code - 0=Rejected, 1=Approved
  • date, time - Scan timestamp
  • approved_quantity, rejected_quantity - Count

Production Phases:

  • T1 = Quilting preparation
  • T2 = Cutting
  • T3 = Sewing/Assembly

📊 Business Intelligence / Daily Mirror (7 tables)

Master Data Tables (Reference/Lookup)

Table Records Purpose Unique Key
dm_articles 500-2000 Product catalog article_code
dm_customers 100-500 Customer master data customer_code
dm_machines 20-50 Production equipment machine_code

Transactional Data Tables

Table Records Purpose Unique Key
dm_orders 5,000+ Sales orders & line items order_line
dm_production_orders 3,000+ Manufacturing orders production_order_line
dm_deliveries 5,000+ Shipment & delivery tracking shipment_id

Aggregated Data Table

Table Records Purpose Unique Key
dm_daily_summary 365+ Daily KPI aggregations report_date

Daily Metrics Tracked:

  • Orders (received, quantity, value)
  • Production (launched, finished, in-progress)
  • Quality (T1/T2/T3 scans & approval rates)
  • Deliveries (shipped, delivered, late)
  • Operations (active operators)

🏷️ Labels & Warehouse (2 tables)

Table Records Purpose Key Field
order_for_labels 2,000+ Label printing queue id, comanda_productie (FK)
warehouse_locations 50-200 Storage location definitions location_code

4. Data Flow & Relationships

USER INTERACTION
        │
        ▼
┌──────────────────┐
│  QUALITY SCANS   │
│  (scan1_orders,  │
│   scanfg_orders) │
└────────┬─────────┘
         │
         │ Uses
         ▼
┌────────────────────────────────┐
│ dm_production_orders (T1 data) │
│                                │
│ Links to:                      │
│ • dm_articles                  │
│ • dm_customers                 │
│ • dm_machines                  │
└────────┬───────────────────────┘
         │
         ├─────────────────────────────────┐
         │                                 │
         ▼                                 ▼
    ┌─────────────────┐        ┌──────────────────┐
    │ dm_orders       │        │ order_for_labels │
    │ (sales orders)  │        │ (label printing) │
    └────────┬────────┘        └──────────────────┘
             │
             ▼
    ┌─────────────────┐
    │ dm_deliveries   │
    │ (shipments)     │
    └─────────────────┘
             │
             └─ Aggregates into
                    ▼
              ┌──────────────────┐
              │ dm_daily_summary │
              │ (KPI Dashboard)  │
              └──────────────────┘

5. Key Relationships Matrix

Foreign Key References

dm_orders
  ├─→ dm_customers.customer_code
  ├─→ dm_articles.article_code
  └─→ dm_production_orders.production_order

dm_production_orders
  ├─→ dm_customers.customer_code
  ├─→ dm_articles.article_code
  └─→ dm_machines.machine_code

dm_deliveries
  ├─→ dm_orders.order_id
  ├─→ dm_customers.customer_code
  └─→ dm_articles.article_code

scan1_orders & scanfg_orders
  └─→ dm_production_orders.production_order (via CP_full_code)

order_for_labels
  └─→ dm_production_orders.production_order (via comanda_productie)

role_permissions
  ├─→ role_hierarchy.role_name
  └─→ permissions.id

users
  └─→ roles.name (via role field)

6. Database Statistics

Table Size Estimation

Category Count Est. Records Est. Size
User Management 6 ~5,000 ~50 MB
Quality Scans 2 ~15,000 ~150 MB
Daily Mirror (Master) 3 ~3,000 ~30 MB
Daily Mirror (Transactional) 3 ~13,000 ~350 MB
Daily Mirror (Aggregated) 1 ~365 ~5 MB
Labels & Warehouse 2 ~2,250 ~50 MB
TOTAL 17 ~38,000+ ~635 MB

7. Critical Indexes

Primary Keys (All Tables)

  • Every table has id or equivalent as PRIMARY KEY

Unique Constraints

users.username
dm_articles.article_code
dm_customers.customer_code
dm_machines.machine_code
dm_orders.order_line
dm_production_orders.production_order_line
warehouse_locations.location_code
permissions.permission_key
role_hierarchy.role_name
dm_daily_summary.report_date

Foreign Key Indexes

dm_orders
  ├─ customer_code
  ├─ article_code
  ├─ delivery_date
  └─ order_status

dm_production_orders
  ├─ customer_code
  ├─ article_code
  ├─ delivery_date
  └─ production_status

dm_deliveries
  ├─ order_id
  ├─ customer_code
  ├─ article_code
  ├─ shipment_date
  ├─ delivery_date
  └─ delivery_status

dm_articles
  ├─ product_group
  └─ classification

dm_customers
  ├─ customer_name
  └─ customer_group

dm_machines
  ├─ machine_type
  └─ department

role_permissions
  ├─ role_name
  └─ permission_id

8. Data Types Summary

Numeric Types

  • INT(11) - IDs, counts, priorities
  • BIGINT(20) - Large IDs (order_for_labels)
  • DECIMAL(10,2) - Prices, measurements
  • DECIMAL(15,2) - Large values, order totals
  • TINYINT(1) - Boolean flags (0/1)

String Types

  • VARCHAR(4) - Operator codes
  • VARCHAR(15) - Production codes
  • VARCHAR(50) - Article/customer/machine codes
  • VARCHAR(100) - Names, descriptions
  • VARCHAR(255) - Long fields (email, descriptions)
  • TEXT - Large text (descriptions, JSON arrays)

Date/Time Types

  • DATE - Calendar dates
  • TIME - Time-of-day
  • TIMESTAMP - Creation/update timestamps
  • DATETIME - Precise date+time values

9. Application Modules & Table Usage

LOGIN PAGE (/)
└─→ users

DASHBOARD (/dashboard)
├─→ users
├─→ scan1_orders (statistics)
├─→ scanfg_orders (statistics)
├─→ dm_production_orders (status)
└─→ dm_orders (metrics)

SETTINGS (/settings)
├─→ users
├─→ roles
├─→ role_hierarchy
├─→ permissions
└─→ role_permissions

QUALITY SCANNING
├─ Quality Scan 1 (/scan1)
│  ├─→ scan1_orders (insert/read)
│  └─→ dm_production_orders (lookup)
│
├─ Quality Scan FG (/scanfg)
│  ├─→ scanfg_orders (insert/read)
│  └─→ dm_production_orders (lookup)
│
├─ Quality Reports (/reports_for_quality)
│  └─→ scan1_orders (analytics)
│
└─ Quality Reports FG (/reports_for_quality_fg)
   └─→ scanfg_orders (analytics)

LABEL PRINTING (/print)
├─→ order_for_labels (manage queue)
└─→ dm_production_orders (lookup)

WAREHOUSE (/warehouse)
└─→ warehouse_locations (locations)

DAILY MIRROR / BI (/daily_mirror)
├─ Dashboard
│  └─→ dm_daily_summary (KPIs)
│
├─ Articles (/daily_mirror/articles)
│  └─→ dm_articles
│
├─ Customers (/daily_mirror/customers)
│  └─→ dm_customers
│
├─ Machines (/daily_mirror/machines)
│  └─→ dm_machines
│
├─ Orders (/daily_mirror/orders)
│  ├─→ dm_orders
│  ├─→ dm_customers (lookup)
│  └─→ dm_articles (lookup)
│
├─ Production Orders (/daily_mirror/production_orders)
│  ├─→ dm_production_orders
│  ├─→ dm_customers (lookup)
│  ├─→ dm_articles (lookup)
│  └─→ dm_machines (lookup)
│
└─ Deliveries (/daily_mirror/deliveries)
   ├─→ dm_deliveries
   ├─→ dm_customers (lookup)
   └─→ dm_articles (lookup)

10. Data Maintenance & Optimization

Performance Optimization

  1. Regular Index Analysis: Monitor slow queries
  2. Table Optimization: OPTIMIZE TABLE for tables > 100MB
  3. Partition Strategy: Consider date-based partitioning for scan tables
  4. Archiving: Archive quality scans older than 2 years

Backup Strategy

  • Daily automated backups/srv/quality_app/backups/
  • Retention: 30 days (configurable)
  • Backup types: Full + data-only incremental backups

Data Cleanup Recommendations

scan1_orders, scanfg_orders
  └─→ Archive data older than 2 years

permission_audit_log
  └─→ Archive quarterly

dm_daily_summary
  └─→ Keep all historical data

11. Production Phases Tracking

The system tracks three phases of production:

Phase T1: Quilting Preparation

  • Table: scan1_orders
  • Fields in dm_production_orders:
    • phase_t1_prepared (status)
    • t1_operator_name (who performed)
    • t1_registration_date (when scanned)
    • end_of_quilting (completion date)

Phase T2: Cutting

  • Fields in dm_production_orders:
    • phase_t2_cut (status)
    • t2_operator_name
    • t2_registration_date

Phase T3: Sewing/Assembly

  • Fields in dm_production_orders:
    • phase_t3_sewing (status)
    • t3_operator_name
    • t3_registration_date
    • end_of_sewing (completion date)

Final Goods (FG) Quality

  • Table: scanfg_orders
  • After all phases complete

12. Key Metrics & KPIs

Tracked in dm_daily_summary:

PRODUCTION METRICS
├─ Orders Received
├─ Production Launched
├─ Production Finished
├─ Production In-Progress
└─ Active Operators

QUALITY METRICS (by phase)
├─ T1 (Quilting)
│  ├─ Total Scans
│  ├─ Approved Count
│  └─ Approval Rate (%)
│
├─ T2 (Cutting)
│  ├─ Total Scans
│  ├─ Approved Count
│  └─ Approval Rate (%)
│
└─ T3 (Sewing)
   ├─ Total Scans
   ├─ Approved Count
   └─ Approval Rate (%)

DELIVERY METRICS
├─ Orders Shipped
├─ Orders Delivered
├─ Orders Returned
├─ On-Time Deliveries
├─ Late Deliveries
└─ Delivery Value

ORDER METRICS
├─ Orders Quantity
├─ Orders Value
├─ Unique Customers
└─ Quilting Completed

13. Future Enhancements

Planned Tables

  1. production_schedule - Production planning calendar
  2. quality_issues - Defect tracking & analysis
  3. inventory_movements - Stock tracking
  4. operator_performance - Worker productivity

Planned Improvements

  • Composite indexes for frequent joins
  • Table partitioning by date (scan tables)
  • Materialized views for complex reports
  • Full-text search indexes

Database Health Check Query

-- View database size
SELECT 
  table_name,
  ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)'
FROM information_schema.TABLES
WHERE table_schema = 'trasabilitate'
ORDER BY (data_length + index_length) DESC;

-- Check row counts
SELECT 
  table_name,
  table_rows
FROM information_schema.TABLES
WHERE table_schema = 'trasabilitate'
ORDER BY table_rows DESC;

-- List all indexes
SELECT 
  table_name,
  index_name,
  seq_in_index,
  column_name
FROM information_schema.STATISTICS
WHERE table_schema = 'trasabilitate'
ORDER BY table_name, index_name, seq_in_index;

Last Updated: January 10, 2026
Database Version: MariaDB 11.8.3
Total Tables: 17
Total Estimated Records: 38,000+
Total Estimated Size: ~635 MB