所以,我有一个用户表,一个雇员表和一个租户表。
我正在使用联接表继承。
class User(Base):
__tablename__ = 'usr_users'
usr_user_id = Column(Integer, primary_key=True)
usr_first_name = Column(Unicode(50))
usr_last_name = Column(Unicode(50))
tenant = relationship("Tenant", uselist=False, backref="User")
usr_type = Column(String(24))
__mapper_args__ = {
'polymorphic_identity':'user',
'polymorphic_on': usr_type
}
class Tenant(User):
"""
Application's user model.
"""
__tablename__ = 'ten_tenants'
ten_tenant_id = Column(Integer, ForeignKey('usr_users.usr_user_id'), primary_key=True)
__mapper_args__ = {
'polymorphic_identity': 'tenant'
}
class Employee(User):
__tablename__ = 'emp_employees'
emp_employee_id = Column(Integer, ForeignKey('usr_users.usr_user_id'), primary_key=True)
__mapper_args__ = {
'polymorphic_identity': 'employee'
}
当用户成为员工时,我已经完成了所有工作。
user = Employee()
session.add(user)
用户表中的条目,以及"类型中的值" "员工"。
但是,如果我的用户既是员工又是租户呢?
我使用什么语法来提取用户,然后添加租户关系,以便生成的用户同时拥有员工关系和租户关系?