Closed tuanhcmute closed 1 year ago
Chỉnh sửa Database
Sau khi thiết kế và vẽ các Diagram nhóm em đã tiến hành chỉnh sửa model trong Project như sau
- Với User model ta thêm các trường chứa thông tin cá nhân và trường enable để kiểm soát tài khoản
class User(db.Model): __tablename__ = 'tblUser'
id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String, unique=True, nullable=False) password = db.Column(db.String, nullable=False) age = db.Column(db.Integer, nullable=True) fullname = db.Column(db.String, nullable=True) address = db.Column(db.String, nullable=True) isEnable = db.Column(db.Boolean, nullable=True) roleId = db.Column(db.Integer, db.ForeignKey(Role.id))
- Bảng Role chứa các role như user và admin
class Role(db.Model): tablename = 'tblRole'
id = db.Column(db.Integer, primary_key=True, autoincrement=True) roleName = db.Column(db.String, unique=True, nullable=False)
- Tạo quan hệ 1 - nhiều: Ta sẽ sử dụng 'relationship'
Với bảng Role ta thêm dòng sau để tạo quan hệ nhiều-một
users = db.relationship('User', backref='Role')
Với bảng User ta thêm khóa ngoại roleId để tạo quan hệ một-nhiều
roleId = db.Column(db.Integer, db.ForeignKey(Role.id))
class Role(db.Model): tablename = 'tblRole'
id = db.Column(db.Integer, primary_key=True, autoincrement=True) roleName = db.Column(db.String, unique=True, nullable=False) users = db.relationship('User', backref='Role')
def init(self, roleName): self.roleName = roleName
def repr(self) -> str: return f'<Role "{self.roleName}">'
from flask_login import UserMixin from app.extensions import db from app.model.role import Role
class User(db.Model, UserMixin): tablename = 'tblUser'
id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String, unique=True, nullable=False) password = db.Column(db.String, nullable=False) age = db.Column(db.Integer, nullable=True) fullname = db.Column(db.String, nullable=True) address = db.Column(db.String, nullable=True) isEnable = db.Column(db.Boolean, nullable=True) roleId = db.Column(db.Integer, db.ForeignKey(Role.id))
def init(self,roleId, username, password,age=None, fullname=None, address=None, isEnable=None): self.username = username self.password = password self.age = age self.fullname = fullname self.address = address self.isEnable = isEnable self.roleId = roleId
def repr(self): return f'<User "{self.username}">'