(bug #4002) fix database for single itemnumber and foreign key

this fix serialitems to have a foreign key to items(if an item is deleted, serialitem must be deleted)
and it fixes issues to have only one issue by itemnumber(strange to have more than one).
This commit is contained in:
Nahuel ANGELINETTI 2009-12-24 17:11:42 +01:00 committed by Henri-Damien LAURENT
parent 25d9198e08
commit aec072fc14
2 changed files with 11 additions and 2 deletions

View File

@ -1104,7 +1104,7 @@ CREATE TABLE `import_items` (
DROP TABLE IF EXISTS `issues`;
CREATE TABLE `issues` (
`borrowernumber` int(11) default NULL,
`itemnumber` int(11) default NULL,
`itemnumber` int(11) UNIQUE default NULL,
`date_due` date default NULL,
`branchcode` varchar(10) default NULL,
`issuingbranch` varchar(18) default NULL,
@ -2195,7 +2195,8 @@ CREATE TABLE `serialitems` (
`serialid` int(11) NOT NULL,
UNIQUE KEY `serialitemsidx` (`itemnumber`),
KEY `serialitems_sfk_1` (`serialid`),
CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE
CONSTRAINT `serialitems_sfk_1` FOREIGN KEY (`serialid`) REFERENCES `serial` (`serialid`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `serialitems_sfk_2` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `user_permissions`;

View File

@ -697,6 +697,14 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
$DBversion = "3.00.06.002";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do("ALTER TABLE issues CHANGE COLUMN `itemnumber` `itemnumber` int(11) UNIQUE DEFAULT NULL;");
$dbh->do("ALTER TABLE serialitems ADD CONSTRAINT `serialitems_sfk_2` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE;");
print "Upgrade to $DBversion done (Improve serialitems table security)\n";
SetVersion ($DBversion);
}
=item DropAllForeignKeys($table)
Drop all foreign keys of the table $table