Autor | Zpráva | ||
---|---|---|---|
WMPopi Profil |
#1 · Zasláno: 31. 1. 2011, 00:13:44
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 |
#2 · Zasláno: 31. 1. 2011, 00:38:03 · Upravil/a: Kcko
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 * |
#3 · Zasláno: 31. 1. 2011, 00:57:06
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 |
#4 · Zasláno: 31. 1. 2011, 01:05:18
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 |
#5 · Zasláno: 31. 1. 2011, 01:21:41
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 |
#6 · Zasláno: 31. 1. 2011, 01:31:30
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 * |
#7 · Zasláno: 31. 1. 2011, 01:53:07
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 |
#8 · Zasláno: 31. 1. 2011, 02:33:51
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 |
#9 · Zasláno: 31. 1. 2011, 08:05:13
WMPopi:
Podívej se na http://www.linuxsoft.cz/article.php?id_article=354 - odstavec data a relace |
||
Časová prodleva: 13 let
|
0