-- -- Struktura tabeli dla tabeli `categories` -- CREATE TABLE `categories` ( `cat_id` smallint(5) UNSIGNED NOT NULL, `cat_name` varchar(60) NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Struktura tabeli dla tabeli `categories_products` -- CREATE TABLE `categories_products` ( `id` int(10) UNSIGNED NOT NULL, `cat_id` int(10) UNSIGNED NOT NULL, `product_id` int(10) UNSIGNED NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Struktura tabeli dla tabeli `products` -- CREATE TABLE `products` ( `product_id` int(10) UNSIGNED NOT NULL, `name` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `categories` ADD PRIMARY KEY (`cat_id`), ALTER TABLE `categories_products` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `cat_id` (`cat_id`,`product_id`), ADD KEY `cat_id` (`cat_id`), ADD KEY `product_id` (`product_id`); ALTER TABLE `products` ADD PRIMARY KEY (`product_id`); ALTER TABLE `categories` MODIFY `cat_id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1; ALTER TABLE `categories_products` MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1; ALTER TABLE `products` MODIFY `product_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
Moje pytanie dotyczy tego czy w tabeli categories_products, zasadne jest to pole id z kluczem? Czy może całkiem zrezygnować z tego pola i spokojnie zostawić tylko jako unikalną parę pola cat_id i product_id