database_models.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from . import db
  2. from datetime import datetime
  3. class Model(db.Model):
  4. __tablename__ = 'Models'
  5. ModelID = db.Column(db.Integer, primary_key=True)
  6. ModelName = db.Column(db.Text, nullable=False)
  7. ModelType = db.Column(db.Text, nullable=False)
  8. CreatedAt = db.Column(db.TIMESTAMP, default=db.func.current_timestamp())
  9. Description = db.Column(db.Text)
  10. class ModelParameters(db.Model):
  11. __tablename__ = 'ModelParameters' # 指定表名
  12. ParamID = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键
  13. ModelID = db.Column(db.Integer, db.ForeignKey('Models.ModelID'), nullable=False) # 外键,指向 Models 表的 ModelID
  14. ParamName = db.Column(db.Text, nullable=False) # 参数名
  15. ParamValue = db.Column(db.Text, nullable=False) # 参数值
  16. # 定义反向关系
  17. model = db.relationship('Model', backref=db.backref('parameters', lazy=True))
  18. class Dataset(db.Model):
  19. __tablename__ = 'Datasets'
  20. DatasetID = db.Column(db.Integer, primary_key=True) # 数据集ID
  21. DatasetName = db.Column(db.String(255), nullable=False) # 数据集名称
  22. DatasetDescription = db.Column(db.Text, nullable=True) # 数据集描述 (可选)
  23. UploadedAt = db.Column(db.TIMESTAMP, default=datetime.utcnow) # 上传时间
  24. RowCount = db.Column(db.Integer, nullable=False) # 数据集行数(条数)
  25. Status = db.Column(db.String(50), default='pending') # 数据集状态 (pending, processed)
  26. DatasetType = db.Column(db.String(50), nullable=False) # 数据集类型 (反酸模型训练, 降酸模型训练等)
  27. def __repr__(self):
  28. return f'<Dataset {self.DatasetName}>'
  29. def to_dict(self):
  30. return {
  31. 'DatasetID': self.DatasetID,
  32. 'DatasetName': self.DatasetName,
  33. 'DatasetDescription': self.DatasetDescription,
  34. 'UploadedAt': self.UploadedAt.strftime('%Y-%m-%d %H:%M:%S'),
  35. 'RowCount': self.RowCount,
  36. 'Status': self.Status,
  37. 'DatasetType': self.DatasetType
  38. }