Я пытаюсь сохранить результаты измерений (время и значения) с помощью sqlalchemy. Вот соответствующие определения таблиц. Если есть более разумное определение таблицы, я бы хотел его увидеть.
from sqlalchemy import create_engine, schema, orm
engine = create_engine('sqlite:///:memory:', echo=True)
metadata = schema.MetaData(bind=engine)
container_table = schema.Table('containers', metadata,
schema.Column('id', schema.types.Integer, primary_key=True))
measurement_table = schema.Table('measurements', metadata,
schema.Column('id', schema.types.Integer, primary_key=True),
schema.Column('container_id', schema.types.Integer,
schema.ForeignKey('containers.id')),
schema.Column('time', schema.types.Float),
schema.Column('value', schema.types.Float))
metadata.create_all()
Время будет уникальным для каждого контейнера, а указанные ниже свойства должны быть упорядочены по времени.
Я бы хотел прочитать и назначить следующие свойства:
c = Container()
times = range(10)
values = [t**2 for t in times]
c.times = times
c.values = values
Но я не знаю, как сделать отображение. Я предполагаю, что если это возможно, это будет выглядеть примерно так:
class Container(object):
times = some_sort_of_proxy()
values = some_sort_of_proxy()
orm.mapper(Container, container_table, properties={
# Magic
})
Как мне это сделать? Это разумное отображение, или мне нужно иметь другую базовую структуру таблицы?