The following is a user management system database design
Many relationship implement user roles
# 多对多 SysUser -> Role sys_user_role = Table('sys_user_role', Base.metadata, Column('sys_user_id', ForeignKey('sys_user.id', ondelete='CASCADE'), primary_key=True), Column('role_id', ForeignKey('role.id', ondelete='CASCADE'), primary_key=True)) # 系统用户 class SysUser(Base): __tablename__= ' Sys_user ' # ID ID = the Column (the UUID, primary_key = True, default = the lambda : STR (uuid.uuid4 ()), UNIQUE = False) # username username = the Column (String (80), UNIQUE = False) # name name = Column (String (80), UNIQUE = False) # password password = Column (String (80), UNIQUE = False) # login token token = Column (String (80), UNIQUE = True) # login ip ip = Column (String (80), UNIQUE = False) # login time login_time = Column(DateTime(), unique=False) # 尝试 登录时间 try_time = Column(DateTime(), unique=False) # 尝试 登录次数 try_count = Column(Integer, unique=False) # 多对多 SysUser -> Role # role_list = relationship('Role', secondary=sys_user_role, back_populates='sys_user_list', cascade='delete, delete-orphan', passive_deletes=True) def __init__(self, username, name): self.username = username self.name = name # 角色 class Role(Base): __tablename__ = 'role' # ID id = Column(UUID, primary_key=True, default=lambda: str(uuid.uuid4()), unique=False) # 名称 name = Column(String(80), unique=False) # 多对多 Role -> Authority # authority_list = relationship('Authority', secondary=role_authority, back_populates='role_list', cascade='delete, delete-orphan', passive_deletes=True) # 多对多 SysUser -> Role sys_user_list = relationship('SysUser', secondary=sys_user_role, backref=backref("role_list")) def __init__(self, name): self.name = name