У меня есть следующие две таблицы в моей базе данных (индексирование не завершено, так как это будет зависеть от того, какой движок я использую):
Таблица 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, но я надеюсь, что вы сможете пролить свет на то, что вы будете делать в моей ситуации.