我需要你的帮助, 我在我的模型文件中有3个表,包含3种不同类型的用户(管理员,客户,公司),每个用户都可以使用电子邮件和密码进行身份验证。问题是当用户在2个表中创建计数时,比如客户和公司,使用相同的电子邮件,程序会在计数之间混淆并给出错误:
- class Admin(UserMixin, db.Model):
- class Client(UserMixin, db.Model):
- class Company(UserMixin, db.Model):
你对这个问题有什么看法吗?
答案 0 :(得分:1)
好的,这是您的数据库的设计缺陷。不应将不同类型的用户存储在不同的地方。
您需要定义一个模型,其中在数据库中定义用户类型。然后,您可以在模型类中创建方法来评估用户类并决定如何处理它。
示例:
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