class Gender(db.Model): # Attributes id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) description = db.Column(db.String(255)) def __init__(self, name, description): self.name = name self.description = description def __repr__(self): return '<Gender: %r>' % (self.name)
class MeasurementUnit(db.Model): # Attributes id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) symbol = db.Column(db.String(10)) suffix = db.Column(db.Boolean) def __init__(self, name, symbol, suffix): self.name = name self.symbol = symbol self.suffix = suffix def __repr__(self): return '<MeasurementUnit: %r>' % (self.name)
class MeasurementType(db.Model): # Attributes id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) description = db.Column(db.String(255)) # Relationships measurement_units = db.relationship('MeasurementUnit', secondary=measurement_units_table, backref=db.backref('measurement_types', lazy='dynamic')) def __init__(self, name, description): self.name = name self.description = description def __repr__(self): return '<MeasurementType: %r>' % (self.name)
class Measurement(db.Model): # Attributes id = db.Column(db.Integer, primary_key=True) datetime = db.Column(db.DateTime) value = db.Column(db.Float) # Foreign keys profile_id = db.Column(db.Integer, db.ForeignKey('profile.id')) measurement_source_id = db.Column(db.Integer, db.ForeignKey('measurement_source.id')) measurement_type_id = db.Column(db.Integer, db.ForeignKey('measurement_type.id')) measurement_unit_id = db.Column(db.Integer, db.ForeignKey('measurement_unit.id')) # Relationships profile = db.relationship('Profile', backref=db.backref('measurements', lazy='dynamic')) measurement_source = db.relationship('MeasurementSource', backref=db.backref('measurements', lazy='dynamic')) measurement_type = db.relationship('MeasurementType', backref=db.backref('measurements', lazy='dynamic')) measurement_unit = db.relationship('MeasurementUnit', backref=db.backref('measurements', lazy='dynamic')) def __init__(self, datetime, value, profile_id, source_id, type_id, unit_id): self.datetime = datetime self.value = value self.profile_id = profile_id self.measurement_source_id = source_id self.measurement_type_id = type_id self.measurement_unit_id = unit_id def __repr__(self): return '<Measurement: %r>' % (self.datetime)
class Profile(db.Model): # Attributes id = db.Column(db.Integer, primary_key=True) last_name = db.Column(db.String(50)) first_name = db.Column(db.String(50)) gender = db.Column(db.Integer) birthday = db.Column(db.Date) # Foreign keys gender_id = db.Column(db.Integer, db.ForeignKey('gender.id')) # Relationships gender = db.relationship('Gender', backref=db.backref('profiles', lazy='dynamic')) def __init__(self, last_name, first_name, birthday, gender_id): self.last_name = last_name self.first_name = first_name self.birthday = birthday self.gender_id = gender_id def __repr__(self): return '<Profile: %r %r>' % (self.first_name, self.last_name)
from app.mod_shared.models import db # Many-to-many relationship tables measurement_units_table = db.Table( 'measurement_units_table', db.Column('measurement_unit_id', db.Integer, db.ForeignKey('measurement_unit.id')), db.Column('measurement_type_id', db.Integer, db.ForeignKey('measurement_type.id')), db.PrimaryKeyConstraint('measurement_unit_id', 'measurement_type_id')) class MeasurementType(db.Model): # Attributes id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) description = db.Column(db.String(255)) # Relationships measurement_units = db.relationship('MeasurementUnit', secondary=measurement_units_table, backref=db.backref('measurement_types', lazy='dynamic')) def __init__(self, name, description): self.name = name self.description = description def __repr__(self): return '<MeasurementType: %r>' % (self.name)