Buongiorno , ho una tabella Hardware :
codice:
CREATE TABLE `hw` (
`id` int NOT NULL AUTO_INCREMENT,
`id_tipo_hw` int NOT NULL,
`id_luogo` int NOT NULL,
`descrizione` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`numero_telefono` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'solo per sim',
`pin` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'solo per sim',
`puk` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'solo per sim',
`contratto` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`seriale` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`cespite` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`marca` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`modello` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`enrollment` tinyint(1) DEFAULT NULL,
`data_enrollment` date DEFAULT NULL,
`data_acquisto` date DEFAULT NULL,
`os` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`mac_address` varchar(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`id_stato_hw` int DEFAULT NULL,
`numero_ipad` tinyint unsigned DEFAULT NULL COMMENT 'Solo Ipad',
`created_at` datetime NOT NULL,
`updated_at` datetime DEFAULT NULL,
`deleted_at` datetime DEFAULT NULL,
`ip` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Solo per dispositivi in rete',
PRIMARY KEY (`id`,`id_tipo_hw`,`id_luogo`),
KEY `fk_hw_tipo_hw` (`id_tipo_hw`),
KEY `id_stato_hw` (`id_stato_hw`),
KEY `id_luogo` (`id_luogo`),
CONSTRAINT `hw_ibfk_4` FOREIGN KEY (`id_stato_hw`) REFERENCES `stato_hw` (`id`),
CONSTRAINT `hw_ibfk_5` FOREIGN KEY (`id_tipo_hw`) REFERENCES `tipo_hw` (`id`),
CONSTRAINT `hw_ibfk_6` FOREIGN KEY (`id_luogo`) REFERENCES `luogo` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
ed una tabella hardware dipendenti che mi serve per lo storico :
codice:
CREATE TABLE `hw_dipendenti` (
`id` int NOT NULL AUTO_INCREMENT,
`id_dipendenti` int NOT NULL,
`id_hw` int NOT NULL,
`data_inizio` date DEFAULT NULL,
`data_fine` date DEFAULT NULL,
`note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime DEFAULT NULL,
`deleted_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`,`id_dipendenti`,`id_hw`),
KEY `fk_tipo_hw_copy1_dipendenti1` (`id_dipendenti`),
KEY `fk_tipo_hw_copy1_hw1` (`id_hw`),
CONSTRAINT `fk_tipo_hw_copy1_dipendenti1` FOREIGN KEY (`id_dipendenti`) REFERENCES `dipendenti` (`id`),
CONSTRAINT `fk_tipo_hw_copy1_hw1` FOREIGN KEY (`id_hw`) REFERENCES `hw` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Quando tolgo un hardware al dipendente (senza assegnarlo ad un altro setto il campo deleted_at con l'orario di cessazione, per rivedere tutta la lista eseguo questo sql :
Ma in questo modo perdo l'hardware tolto al dipendente , come faccio a mantenere lo storico e contemporaneamente avere la lista completa ?