MSM_output.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from sqlalchemy import Column, Integer, Float, Text
  2. from sqlalchemy import ForeignKey, ForeignKeyConstraint
  3. from app.database import Base # 统一的基础模型
  4. class MSMOutputData(Base):
  5. """
  6. 络合模型输出数据模型
  7. 存储多表面模型(MSM)的计算结果
  8. 模型特点:
  9. 1. 每个记录唯一对应MSM输入数据模型
  10. 2. Cd.solution字段包含溶液中镉离子的关键计算结果
  11. 3. Var字段与输入模型保持一致便于溯源
  12. """
  13. __tablename__ = 'MSM_output_data'
  14. # 主键配置
  15. id = Column('ID', Integer, primary_key=True, autoincrement=True)
  16. # 外键参考Farmland_data表 (复合外键)
  17. farmland_id = Column('Farmland_ID', Integer, nullable=False)
  18. sample_id = Column('Sample_ID', Integer, nullable=False)
  19. # 复合外键约束
  20. __table_args__ = (
  21. ForeignKeyConstraint(
  22. ['Farmland_ID', 'Sample_ID'],
  23. ['Farmland_data.Farmland_ID', 'Farmland_data.Sample_ID']
  24. ),
  25. {'comment': '络合模型输出数据模型'}
  26. )
  27. # 数据索引符 - 与输入模型对应
  28. var = Column('Var', Text, nullable=False,
  29. comment='过程模型数据索引符,与MSM_input_data.Var一致')
  30. # 关键计算结果 - 溶液中镉离子浓度
  31. cd_solution = Column('Cd.solution', Float, nullable=False,
  32. comment='镉离子浓度[mol/L]:络合模型核心计算结果')