Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 4. 7. 2016, 15:26:51
Zdravim,
Akym sposobom sa da upravit enum typ pri vypise do selectu, ak v tabulke nechcem pouzivat diakritiku? Napriklad mam v tabulke datovy typ enum a v nom enum('cerveny', 'modry', 'cierny', ); Potom to vypisem cez SHOW COLUMNS FROM ... pre value to nevadi ale ako popisok v <option> by to chcelo s diakritikou.
Asi neexistuje datovy typ tvaru 'cerveny' : 'červený' vdaka M. |
||
abc Profil |
Enum IMHO není vhodný vůbec k ničemu - některé DB ho neumí, takže je třeba problém při změně DB.
Používáme 2 varianty, podle toho, která se hodí víc (zda to upravuje uživatel nebo ne apod.): 1) DB enum - další tabulka, kde je seznam barev 2) "Class enum" - máme vyrobené Enum třídy, kde jsou atributy jako konstanty a pracuje se s tím pěkně. Pro tvůj případ cca: class ColorEnum { const RED = "červená"; const BLUE = "modrá"; } Seznam konstant/název konstanty z "červená" lze potom zjistit pomocí reflexe třídy (pokud by byl zájem, doplním) |
||
TomášK Profil |
#3 · Zasláno: 4. 7. 2016, 16:49:04
Pro podobné věci používám lokalizaci (i18n), doporučuju. Překlady názvů sloupců/enumů jsou na jednom místě, nepletou se v databázi nebo kódu, snadno dohledatelné.
|
||
Monkeys Profil * |
#4 · Zasláno: 4. 7. 2016, 20:06:32
abc:
Tak tvoj priklad je asi to co hladam, pekne jednoduche doriesit si to uz pre svoje potreby viem. Taketo riesenie cez konstanty by ma asi nenapadlo. TomášK: „lokalizaci (i18n)“ Fuuu tak to ani neviem co je :) |
||
TomášK Profil |
#5 · Zasláno: 4. 7. 2016, 20:16:56
Lokalizace je obecný výraz pro překlad programu/webu do více jazyků. Funguje to tak, že si pro každý jazyk nadefinuješ seznam překladů - např. {'red': 'červená', ...} a v kódů místo červená píšeš
t('red') , kde t je funkce, která to přeloží. Pokud používáš nějaký framework, dost možná v sobě podporu má, i s omáčkou okolo. Ale pokud něco takového nepoužíváš, asi nestojí za to s tím začít jen kvůli pár enumům.
|
||
Martin2 Profil * |
#6 · Zasláno: 5. 7. 2016, 01:45:12
abc:
„Enum IMHO není vhodný vůbec k ničemu“ Takhle bys mohl uvažovat o většině datových typů. Enum patří mezi obecné návrhové vzory, to je vše – pro sloupec s omezenou množinou (textových) stavů mi jeho použití dává dobrý smysl. Už jen proto, že pokus o uložení neplatné hodnoty skončí chybou. Taky Adminer/PMA jej zobrazuje v editaci jako radiolist/select. No a u obrovských tabulek ušetříš i nějaké to místo pro data/index. Monkeys: „ak v tabulke nechcem pouzivat diakritiku?“ Máš k tomu nějaký důvod? Pokud tu hodnotu nepoužíváš jako nějaký programový identifikátor, tak klidně ukládej i diakritiku. |
||
Časová prodleva: 8 let
|
0