当前位置: 首页 > 面试题库 >

在Sqlalchemy中进行枚举的最佳方法?

司寇飞航
2023-03-14
问题内容

我正在阅读有关sqlalchemy的信息,并且看到了以下代码:

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')

我应该在库中使用常量将“类型”设置为int吗?还是我应该使枚举成为枚举?


问题答案:

SQLAlchemy从0.6开始具有Enum类型:http
://docs.sqlalchemy.org/en/latest/core/type_basics.html?highlight=enum#sqlalchemy.types.Enum


尽管我只建议您在数据库具有本机枚举类型的情况下使用它。否则,我个人将只使用int。



 类似资料:
  • 具有以下定义 是否有一种方法可以正确执行比较以使用标准等式:

  • 问题内容: 使类型代表一组字符串的最佳方法是什么? 我尝试了这个: 然后如何将它们用作? 问题答案: 我不知道您想做什么,但这是我实际上翻译示例代码的方式。 另外,您可以为创建一个getter方法。 你现在可以做

  • 在我的表中,我希望有指向MyEnumCode表的字段。 使用currenlty同时支持EnumType.Ordinal和EnumType.String,我想这不是一个好主意。 还有一个问题。如何使用Java类数据填写表?你会怎么做?最好的方法。 这里当然有弊端。但目前我看不出更好的方法。请不要提供EnumType.Ordinal和EnumType.String的备选项。我不想在这里写它的用法可能存

  • 问题内容: 在SO问题上编写的内容基础上构建Java最佳单例实现 -即关于使用枚举创建单例-之间的区别/优点/缺点(省略构造函数) and then calling 和 and then calling 问题答案: 假设您要绑定到将使用给定对象的属性的对象-您可以非常轻松地传递Elvis.INSTANCE,但是您不能传递Elvis.class并期望它找到该属性(除非经过故意编码才能找到类的静态属性

  • 问题内容: 我们有一个REST API,客户端可以在其中提供代表Java Enums中服务器上定义的值的参数。 因此,我们可以提供一个描述性错误,我们将此方法添加到每个Enum中。似乎我们只是在复制代码(错误)。有更好的做法吗? 更新 :提供的默认错误消息为。我想提供一个来自API的更具描述性的错误。 问题答案: 可能可以实现通用静态方法。 像这样 那么你就可以 或显式调用实用程序类查找方法。

  • 问题内容: 我正在寻找一种在Oracle 9数据库中执行多行插入的好方法。以下内容在MySQL中有效,但Oracle似乎不支持以下内容。 问题答案: 这在Oracle中有效: 这里要记住的是使用语句。