У меня есть две таблицы событий и бронирований, которые связаны event_id.Пример:
CREATE TABLE `bookings` (
`booking_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`event_id` int(10) UNSIGNED NULL DEFAULT NULL,
`fullname` varchar(80) NOT NULL,
`phone` varchar(20) NULL DEFAULT NULL,
`note` text NULL,
`date_created` datetime NOT NULL,
`date_updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`booking_id`),
FOREIGN KEY (`event_id`) REFERENCES `events` (`event_id`) ON DELETE SET NULL ON UPDATE CASCADE,
INDEX `event_id` USING BTREE (`event_id`),
INDEX `source_id` USING BTREE (`source_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT;
#events
CREATE TABLE `events` (
`event_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`date` date NOT NULL ,
`title` varchar(255) NULL DEFAULT NULL ,
`description` text NULL,
PRIMARY KEY (`event_id`, `date`),
UNIQUE INDEX `date` USING BTREE (`date`) ,
INDEX `event_id` USING BTREE (`event_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT;
Мне интересно, могу ли я использовать поле даты в качестве ссылки между таблицами, так как оно потребляет на 1 байт меньше по сравнению с целым числом, и его легче читать и работать с одной таблицей, а не вместе.Но я не уверен, как это влияет на индексирование и производительность SQL-запросов.