Autor Zpráva
WMPopi
Profil
Datové typy enum a set jsem dosud nevyužíval a nyní bych chtěl začít, avšak mám tu jisté mezery..

Dělám v mysql tabulku s nabídkou vozů. U každého vozu se zadává typ, značka, model, palivo, výbava,.. Sloupce značka a model budou pouze číselníky a budou mít samostatné tabulky (je potřeba je administrovat). Pro pole typ a palivo bych chtěl využít datový typ enum. (je to tak správně?) Je vhodné pro sloupec výbava použít datový typ set? Může se jednat o velké množství hodnot: airbag, rádio, stření okno,..

Jinak by mě napadlo použít typ text/varchar a do zapisovat oddělené hodnoty středníkem.
Kcko
Profil
Pokud víš, že se hodnoty nebudou měnit a vejdou se do datových typů tak ano.

Tvůj nápad ukládat hodnoty odděleně je nesmysl a nesprávný návrh.

ENUM - pouze 1 hodnota
SET - i více hodnot najednou (max. 64)
DoubleThink
Profil *
Pro menší množinu výbavy může být SET, pro větší už je lepší dvojice tabulek s relací M:N.
WMPopi
Profil
Kcko:
Pokud víš, že se hodnoty nebudou měnit a vejdou se do datových typů tak ano.
a když budu k jednomu vozu zadávat třeba 100 parametrů výbavy, je skutečně nesmysl použít pole typu text a do něj cpát 1;4;19;2..?
Kcko
Profil
WMPopi:
Ano, nevím jak dál s tím chceš pracovat, ale bude to cesta do pekel. Udělej si normalizované tabulky a ono to půjde.
WMPopi
Profil
Kcko:
Teď jsem si uvědomil, že je to blbina, leda bych to řešil následovně:

- tabulka vybava (id - nazev)
- při přidávání vozů výpis tabulky vybava -> vytvoření checkboxů, které by měly hodnotu názvu položky výbavy (nikoli id)
- po odeslání projet všechny checkboxy a do proměnné zapsat slovně např "airbag, střešní okno" a uložit do db do sloupce výbava

Ve výpisu vozu to stejně má vypadat takhle slovně, takže bych nemusel nic řešit.

Udělám to dvojící tabulek, šlo mi jen o to, co je elegantnější..
DoubleThink
Profil *
WMPopi:
To je ještě větší prasárna.
Použij relaci M:N - žádná jiná správná možnost pro tak velké množství parametrů neexistuje - co na této informaci nechápeš?
WMPopi
Profil
DoubleThink:
co na této informaci nechápeš?
Popravdě, hledal jsem co přesně znamená relace M:N :-)
Jestli jsem dobře pochopil, tak vytvořit třetí tabulku vybava_seznam (id, id_vozu, id_vybavy)?
Taps
Profil
WMPopi:
Podívej se na http://www.linuxsoft.cz/article.php?id_article=354 - odstavec data a relace

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: