Autor Zpráva
Jirin
Profil
Jak řešíte ENUM v Doctrine? Článek v dokumentaci (http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/mysql-enums.html) jsem samozřjmě četl. Nicméně zajímá mě spíše reálné užití v praxi. Používáte ENUM (slyšel jsem na něj pěkné pořekadlo "koho enum napadne, tomu ruka upadne" :-), nebo mapujete na tinyint, případně varchar. Budu rád i za odůvodnění proč je to lepší.

Já najednu stranu čtu negativa na ENUM jako datová typ, ale zase někdo to doporučuje, tak nevím, jestli jej vůbec používat.
Jan Tvrdík
Profil
Jirin:
Já jsem vyřešil enum pomocí parametru columnDefinition:

    /**
     * @var string
     * @ORM\Column(type="string", nullable=false, columnDefinition="ENUM('even','odd','both') NOT NULL")
     */
    private $week;

V Symfony konfigurace pak:
doctrine:
    dbal:
        mapping_types:
            enum: string
Jirin
Profil
Díky za reakci, takhle podobně jsem to taky řešil, trošku nepříjemné je, že by to při každém orm:schema:update vypisuje novy alter prave kvůli tomu ENUMu

nicméně jde mi o to také, zda je opravdu vhodné ten ENUM používat, přeci asi není nativně v doctrine asi jen tak pro nic za nic, tak jestli není lepší právě varchar či tinyint
Jan Tvrdík
Profil
Jirin:
přeci asi není nativně v doctrine asi jen tak pro nic za nic
Jediný důvod, proč není v Doctrine (pokud vím), je, že není součástí standartu SQL.
Jirin
Profil
Mě právě zároveň "děsila" ta věc, že je proti němu taková vlna averze na některých fórech. Ale asi je tedy v praxi používán normálně.

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:

0