Uložená dat do mysql - způsob
Ahoj,
právě navrhuji jednu MySQL databázi a přemýšlím co je lepší:
Řekněme že máme databázi nějakých výrobků, které mají nějaké vlastnosti - mají nějaké položky u kterých je uloženo jen ano/ne, případně číslo, ale je tam taky skupina Certifikace (např IP67, IP 68, CE, XX, YY) a výrobek může mít žádnou až všechny.
No a já přemýšlím zda to uložit binárně jako třeba 10001 - tedy že má IP67 a YY, nebo zda to uložit každé zvlášť např jako tiniint a mít hodnotu 1 nebo 0.
Uživatel si bude moct podle těchto hodnot také filtrovat, tak jestli třeba bude lepší to mít binárně jako jedno pole a to oindexovat, místo abych indexoval 5 sloupců. Binární varianta má také výhodu že při filtrování se nebude muset skládat DB dotaz typu WHERE ... and IP67==1 AND YY == 1 atd... ale bude jen WHERE ... AND certifikace = 10001.
Ale binární uložení má i nevýhody - např při editaci při vyplňování formuláře se musí binarní hodnota rozebrat a správně vyplnit formuláře prvky apod.
K jaké variante se kloníte vy? Případně výhody/nevýhody.
Snad jsem to popsal srozumitelně...
Díky
Jak ukládat
- Binárně - např když má výrobek první, třetí a pátou certifikaci, tak 10101 0x
- 0%
- Samostatně do sloupců - např sloupec IP 68, XX,YY 1x
- 14%
- Jinak, jak? 6x
- 86%