-- ShopDB Infrastructure Restructure -- Date: 2025-10-21 -- Description: Remove -PRINTER machines, delete infrastructure machine types, -- and create dedicated tables for network infrastructure items USE shopfloor; -- ============================================================================ -- STEP 1: Create new infrastructure tables -- ============================================================================ -- Create Access Points table CREATE TABLE IF NOT EXISTS accesspoints ( apid INT AUTO_INCREMENT PRIMARY KEY, hostname VARCHAR(100), ipaddress VARCHAR(45), description VARCHAR(255), maptop INT, mapleft INT, isactive BIT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create IDFs (Intermediate Distribution Frame) table CREATE TABLE IF NOT EXISTS idfs ( idfid INT AUTO_INCREMENT PRIMARY KEY, hostname VARCHAR(100), ipaddress VARCHAR(45), description VARCHAR(255), maptop INT, mapleft INT, isactive BIT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create Cameras table CREATE TABLE IF NOT EXISTS cameras ( cameraid INT AUTO_INCREMENT PRIMARY KEY, hostname VARCHAR(100), ipaddress VARCHAR(45), description VARCHAR(255), maptop INT, mapleft INT, isactive BIT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create Switches table CREATE TABLE IF NOT EXISTS switches ( switchid INT AUTO_INCREMENT PRIMARY KEY, hostname VARCHAR(100), ipaddress VARCHAR(45), description VARCHAR(255), maptop INT, mapleft INT, isactive BIT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Create Servers table CREATE TABLE IF NOT EXISTS servers ( serverid INT AUTO_INCREMENT PRIMARY KEY, hostname VARCHAR(100), ipaddress VARCHAR(45), description VARCHAR(255), maptop INT, mapleft INT, isactive BIT(1) DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ============================================================================ -- STEP 2: Remove -PRINTER machines from machines table -- ============================================================================ -- Delete all machines with names ending in -PRINTER -- These were placeholder entries for network map and are being moved to dedicated tables DELETE FROM machines WHERE machinenumber LIKE '%-PRINTER'; -- ============================================================================ -- STEP 3: Remove infrastructure machine types from machinetypes table -- ============================================================================ -- Delete machine types that are now handled by dedicated tables -- Note: Printer machine type removed as printers table already exists separately DELETE FROM machinetypes WHERE machinetype IN ( 'Printer', 'Access Point', 'IDF', 'Camera', 'Switch', 'Server' ); -- ============================================================================ -- Verification Queries (commented out - uncomment to verify changes) -- ============================================================================ -- Verify new tables exist -- SELECT TABLE_NAME FROM information_schema.TABLES -- WHERE TABLE_SCHEMA = 'shopfloor' -- AND TABLE_NAME IN ('accesspoints', 'idfs', 'cameras', 'switches', 'servers'); -- Verify -PRINTER machines removed -- SELECT COUNT(*) as remaining_printer_machines FROM machines WHERE machinenumber LIKE '%-PRINTER'; -- Verify infrastructure machine types removed -- SELECT machinetypeid, machinetype FROM machinetypes ORDER BY machinetypeid; -- View structure of new tables -- DESCRIBE accesspoints; -- DESCRIBE idfs; -- DESCRIBE cameras; -- DESCRIBE switches; -- DESCRIBE servers;