I’m reading about sqlalchemy and I saw following code:
JavaScript
x
13
13
1
employees_table = Table('employees', metadata,
2
Column('employee_id', Integer, primary_key=True),
3
Column('name', String(50)),
4
Column('manager_data', String(50)),
5
Column('engineer_info', String(50)),
6
Column('type', String(20), nullable=False)
7
)
8
9
employee_mapper = mapper(Employee, employees_table,
10
polymorphic_on=employees_table.c.type, polymorphic_identity='employee')
11
manager_mapper = mapper(Manager, inherits=employee_mapper, polymorphic_identity='manager')
12
engineer_mapper = mapper(Engineer, inherits=employee_mapper, polymorphic_identity='engineer')
13
Should I make ‘type’ an int, with constants in a library? Or should I make just make type an enum?
Advertisement
Answer
SQLAlchemy has an Enum type since 0.6: http://docs.sqlalchemy.org/en/latest/core/type_basics.html?highlight=enum#sqlalchemy.types.Enum
Although I would only recommend its usage if your database has a native enum type. Otherwise I would personally just use an int.