У меня есть две следующие таблицы в моей базе данных (индексирование не является полным, поскольку оно будет основано на том, какой движок я использую):
Таблица 1:
CREATE TABLE `primary_images` (
`imgId` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`imgTitle` varchar(255) DEFAULT NULL,
`view` varchar(45) DEFAULT NULL,
`secondary` enum('true','false') NOT NULL DEFAULT 'false',
`imgURL` varchar(255) DEFAULT NULL,
`imgWidth` smallint(6) DEFAULT NULL,
`imgHeight` smallint(6) DEFAULT NULL,
`imgDate` datetime DEFAULT NULL,
`imgClass` enum('jeans','t-shirts','shoes','dress_shirts') DEFAULT NULL,
`imgFamily` enum('boss','lacoste','tr') DEFAULT NULL,
`imgGender` enum('mens','womens') NOT NULL DEFAULT 'mens',
PRIMARY KEY (`imgId`),
UNIQUE KEY `imgDate` (`imgDate`)
)
Таблица 2:
CREATE TABLE `secondary_images` (
`imgId` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`primaryId` smallint(6) unsigned DEFAULT NULL,
`view` varchar(45) DEFAULT NULL,
`imgURL` varchar(255) DEFAULT NULL,
`imgWidth` smallint(6) DEFAULT NULL,
`imgHeight` smallint(6) DEFAULT NULL,
`imgDate` datetime DEFAULT NULL,
PRIMARY KEY (`imgId`),
UNIQUE KEY `imgDate` (`imgDate`)
)
Таблица 1 будет использоваться для создания галереи миниатюр со ссылками на более крупные версии изображения. imgClass
, imgFamily
и imgGender
будут уточнять отображаемые миниатюры.
Таблица 2 содержит изображения, связанные с таковыми в таблице 1. Следовательно, использование primaryId
для связи одного изображения в таблице 1 с одним или несколькими изображениями в таблице 2. Это то, о чем я думал об использовании внешнего ключа способность InnoDB, но я также знаком с возможностью индексов в MyISAM делать то же самое.
Не вдаваясь слишком много в оставшиеся поля, imgDate
используется для упорядочивания результатов.
Наконец, но не в последнюю очередь, я должен упомянуть, что эта база данных ТОЛЬКО ЧИТАЕТ. Все данные будут введены мной. Мне сказали, что если база данных только для чтения, она должна быть MyISAM, но я надеюсь, что вы можете пролить свет на то, что вы сделали бы в моей ситуации.