Zdravím,
práve robím jeden návrh databáze a napadla ma taká myšlienka...
Doposiaľ som robil DB vždy tak, že každá tabuľka mala ako primárny kľúč položku INT "id" s nastaveným auto_increment.
Tu je príklad tabuľky pre párovanie produktov v eShope s kategóriami:
- id INT PRIMARY KEY autoincrement
- shop_products_id INT
- shop_categories_id INT
na stĺpce shop_products_id a shop_categories_id boli samozrejme vytvorené INDEXy.
Táto tabuľka sa dá ale spraviť aj úspornejšie takto:
- shop_categories_id INT
- shop_products_id INT
Primárny kľúč by bol vytvorený na obidve položky. INDEX by sa potom vytvoril len na shop_products_id, kvoli vyhľadaniu v ktorej kategorii je produkt.
Otázka teda znie, že či je pre MySQL lepšie používať všade stĺpec ID(či mysql vie lepšie pracovať s takýmito záznamami, ktoré majú id) tak ako v hornom príklade, alebo mu je to jedno ?
Ak je lepšie druhé riešenie, ako čo najsprávnejšie nadefinovať INDEXy?
Je v MySQL nejaká možnosť, že samotná tabuľka by bola INDEX - keďže v druhom prípade sa data ukladajú raz do tabuľky a dva-krát do INDEXov....?
Prosím o solídne a technicky podložené odpovede, prečo je tá - ktorá variatna lepšia.