Remove primary key ContributorId

`Ebook` to `Contributor` is one to many, and we don't query by ContributorId.
The table already has a SortOrder column, and we use that to order the queries.
This commit is contained in:
Mike Colagrosso 2024-10-13 21:06:08 -06:00 committed by Alex Cabal
parent 1076c9a77d
commit 3f3cf702b2
3 changed files with 4 additions and 9 deletions

View file

@ -1,5 +1,4 @@
CREATE TABLE `Contributors` (
`ContributorId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`EbookId` int(10) unsigned NOT NULL,
`Name` varchar(255) NOT NULL,
`UrlName` varchar(255) NOT NULL,
@ -9,7 +8,6 @@ CREATE TABLE `Contributors` (
`FullName` varchar(255) NULL,
`NacoafUrl` varchar(255) NULL,
`SortOrder` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`ContributorId`),
KEY `index1` (`EbookId`),
KEY `index2` (`UrlName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View file

@ -5,7 +5,6 @@ use Safe\DateTimeImmutable;
use function Safe\preg_match;
class Contributor{
public ?int $ContributorId = null;
public ?int $EbookId = null;
public string $Name;
public string $UrlName;
@ -136,7 +135,5 @@ class Contributor{
?)
', [$this->EbookId, $this->Name, $this->UrlName, $this->SortName, $this->WikipediaUrl, $this->MarcRole, $this->FullName,
$this->NacoafUrl, $this->SortOrder]);
$this->ContributorId = Db::GetLastInsertedId();
}
}

View file

@ -210,7 +210,7 @@ class Ebook{
from Contributors
where EbookId = ?
and MarcRole = ?
order by ContributorId
order by SortOrder asc
', [$this->EbookId, 'aut'], Contributor::class);
}
@ -227,7 +227,7 @@ class Ebook{
from Contributors
where EbookId = ?
and MarcRole = ?
order by ContributorId
order by SortOrder asc
', [$this->EbookId, 'ill'], Contributor::class);
}
@ -244,7 +244,7 @@ class Ebook{
from Contributors
where EbookId = ?
and MarcRole = ?
order by ContributorId
order by SortOrder asc
', [$this->EbookId, 'trl'], Contributor::class);
}
@ -261,7 +261,7 @@ class Ebook{
from Contributors
where EbookId = ?
and MarcRole = ?
order by ContributorId
order by SortOrder asc
', [$this->EbookId, 'ctb'], Contributor::class);
}