Python 多表多用户身份验证

Python 多表多用户身份验证,python,flask,flask-wtforms,flask-login,multi-user,Python,Flask,Flask Wtforms,Flask Login,Multi User,我需要你的帮助, 在我的模型文件中,有3个不同类型用户(管理员、客户、公司)的3个表,每个用户都可以有一封电子邮件和密码进行身份验证。问题在于,当用户使用同一封电子邮件在两个表(如客户和公司)中创建计数时,程序会混淆计数,并给出一个错误: - class Admin(UserMixin, db.Model): - class Client(UserMixin, db.Model): - class Company(UserMixin, db.Model): 你知道这个问题吗?好的

我需要你的帮助, 在我的模型文件中,有3个不同类型用户(管理员、客户、公司)的3个表,每个用户都可以有一封电子邮件和密码进行身份验证。问题在于,当用户使用同一封电子邮件在两个表(如客户和公司)中创建计数时,程序会混淆计数,并给出一个错误:

 - class Admin(UserMixin, db.Model):   
 - class Client(UserMixin, db.Model): 
 - class Company(UserMixin, db.Model):

你知道这个问题吗?

好的,这是数据库的设计缺陷。不同类型的用户不应存储在不同的地方

您需要定义一个在数据库中定义用户类型的模型。然后可以在模型类中创建方法来评估用户类并决定如何处理它

例如:

class User(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(200), unique = True)
    password = db.Column(db.String(200))
    userType = db.Column(db.String(20), default = 'user') #can be user, client, admin or whatever your options are

    def isAdmin(self): #an example method - your admin view could use this method to check if a user should be given access
         if self.userType == 'admin':
             return True
         else:
             return False

我有一个类似的问题,但只有一个用户类型应该有一个指向其他表的外键,我如何才能做到这一点?继承?您可以在此处更改权限以获取更多信息