|
|
# 导入数据库实例db和datetime模块
|
|
|
from app import db
|
|
|
from datetime import datetime
|
|
|
|
|
|
# 定义监测点模型MonitorPoint,继承自db.Model
|
|
|
class MonitorPoint(db.Model):
|
|
|
# 设置表名为'monitor_points'
|
|
|
__tablename__ = 'monitor_points'
|
|
|
|
|
|
# 定义id列,整数类型,作为主键
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
|
# 定义name列,字符串类型,最大长度64,不允许为空
|
|
|
name = db.Column(db.String(64), nullable=False)
|
|
|
# 定义location列,字符串类型,最大长度128,允许为空
|
|
|
location = db.Column(db.String(128))
|
|
|
# 定义description列,字符串类型,最大长度256,允许为空
|
|
|
description = db.Column(db.String(256))
|
|
|
# 定义created_at列,日期时间类型,默认值为当前UTC时间
|
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
|
|
|
# 定义监测数据模型MonitorData,继承自db.Model
|
|
|
class MonitorData(db.Model):
|
|
|
# 设置表名为'monitor_data'
|
|
|
__tablename__ = 'monitor_data'
|
|
|
|
|
|
# 定义id列,整数类型,作为主键
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
|
# 定义point_id列,整数类型,外键关联到monitor_points表的id字段,不允许为空
|
|
|
point_id = db.Column(db.Integer, db.ForeignKey('monitor_points.id'), nullable=False)
|
|
|
# 定义dissolved_oxygen列,浮点数类型,表示溶解氧含量(mg/L)
|
|
|
dissolved_oxygen = db.Column(db.Float) # 溶解氧 mg/L
|
|
|
# 定义ph_value列,浮点数类型,表示pH值
|
|
|
ph_value = db.Column(db.Float) # pH值
|
|
|
# 定义temperature列,浮点数类型,表示温度(℃)
|
|
|
temperature = db.Column(db.Float) # 温度 ℃
|
|
|
# 定义ammonia_nitrogen列,浮点数类型,表示氨氮含量(mg/L)
|
|
|
ammonia_nitrogen = db.Column(db.Float) # 氨氮 mg/L
|
|
|
# 定义turbidity列,浮点数类型,表示浊度(NTU)
|
|
|
turbidity = db.Column(db.Float) # 浊度 NTU
|
|
|
# 定义timestamp列,日期时间类型,默认值为当前UTC时间
|
|
|
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
|
|
|
# 定义与MonitorPoint的关系,建立反向引用'data'
|
|
|
point = db.relationship('MonitorPoint', backref='data') |