Гибридное свойство SQLAlchemy - диапазон идентификаторов - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в SQL и SQLAlchemy. Я пытаюсь представить модель анализа методом конечных элементов с использованием реляционной базы данных. У меня есть два определения класса, как показано ниже.

class Node(Base):
    __tablename__ = 'nodes'
    id = Column(Integer, primary_key=True)
    ..... # Some other properties

class Element(Base):
    __tablename__ = 'elements'
    id = Column(Integer, primary_key=True)
    .... # Some other property

Теперь я хочу определить третий класс, который является определением «Компонент», который представляет собой набор либо узлов или элементов. Это будет выглядеть примерно так:

class Component(Base):
    id = Column(Integer, primary_key=True)
    name = Column(String)
    type = Column(String) # Either 'Node' or 'Element'
    items = [list of IDs of nodes or elements] <<<< need help here

Элементами будут либо идентификаторы узлов, либо идентификаторы элементов в зависимости от типа свойства. Для любого Компонента тип будет фиксированным. Здесь мне нужна помощь с тремя вещами. Как мне создать связь с Node или Element в зависимости от типа Component. Как мне представить здесь список предметов?

Третий вопрос зависит от второго. Список, который у меня есть, представляет собой смесь положительных и отрицательных чисел. + ve number - это непосредственно идентификаторы соответствующего узла / элемента. -ve числа представляют диапазон идентификаторов, начиная с последнего идентификатора + ve. Итак, я хочу знать, как использовать hybrid_property в качестве отношения.

Любая помощь действительно приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...