Добрый день, подскажите как лучше реализовывать структуру в базе данных для связующих таблиц.
У меня есть например три таблицы:
users,
roles и таблица
role_user, которая связывает таблицы
users и
roles,
сейчас таблица
role_user имеет следующую структуру:
`role_user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned DEFAULT '0',
`role_id` int(10) unsigned DEFAULT '0',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `role_user_user_id_foreign` (`user_id`),
KEY `role_user_role_id_foreign` (`role_id`)
) ENGINE=InnoDB;
Не являются ли поля created_at, updated_at, id излишками в таблице? Видел в популярной CMS, что аналогичные талицы делались так:
`role_user` (
`user_id` int(10) unsigned NOT NULL,
`role_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`user_id`,`role_id`),
KEY `role_user_role_id_index` (`role_id`)
) ENGINE=InnoDB;
Подскажите, насколько это влияет на выборку из базы?