Autor Zpráva
Monkeys
Profil *
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á";
}
Do DB se uloží název konstanty (RED) a pak se pomocí ColorEnum::RED
Seznam konstant/název konstanty z "červená" lze potom zjistit pomocí reflexe třídy (pokud by byl zájem, doplním)
TomášK
Profil
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 *
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
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 *
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.

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: