103 votes

La meilleure façon de faire l'enum à Sqlalchemy ?

Je lis à propos de sqlalchemy et j'ai vu le code suivant :

employees_table = Table('employees', metadata,
    Column('employee_id', Integer, primary_key=True),
    Column('name', String(50)),
    Column('manager_data', String(50)),
    Column('engineer_info', String(50)),
    Column('type', String(20), nullable=False)
)

employee_mapper = mapper(Employee, employees_table, \
    polymorphic_on=employees_table.c.type, polymorphic_identity='employee')
manager_mapper = mapper(Manager, inherits=employee_mapper, polymorphic_identity='manager')
engineer_mapper = mapper(Engineer, inherits=employee_mapper, polymorphic_identity='engineer')

Dois-je faire un int 'type', avec des constantes dans une bibliothèque ? Ou devrais-je juste faire du type un enum ?

52voto

Wolph Points 28062

SQLAlchemy a un type Enum depuis 0.6 : http://docs.sqlalchemy.org/fr/latest/core/type_basics.html?highlight=enum#sqlalchemy.types.Enum

Bien que je ne recommanderais son utilisation que si votre base de données a un type enum natif. Sinon, j'utiliserais personnellement un int.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X