Какова производительность свойств с поддержкой запросов? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть большая кодовая база с использованием flask и sqlalchemy, которая обращается к строке свойств, подобной следующему кодовому блоку, в десятках мест:

Вариация кода по всей кодовой базе:

jobs = job.query.all()
for each_job in jobs:
    print(job.company)

Я хочу изменить компанию из строки в класс без изменения большого количества кода, поэтому я пытаюсь использовать свойства с поддержкой запросов

Текущий:

"""
" Job model
"""
class job(db.Model):
    id = db.Column('id', db.Integer, primary_key = True)
    role = db.Column(db.Text)
    company = db.Column(db.Text)

Предложено :

"""
" Job model
"""
class job(db.Model):
    id = db.Column('id', db.Integer, primary_key = True)
    role = db.Column(db.Text)

    company_id = db.Column(db.Integer, db.ForeignKey('company.id'))
    tied_company = db.relationship('contact', lazy='select')

    def _get_company(self):
        theCompany = company.query.with_parent(self).all()
        return theCompany.name
    company = property(_get_company)


"""
" Company model
"""
class job(db.Model):
    id = db.Column('id', db.Integer, primary_key = True)
    name = db.Column(db.Text)

Мы еще не использовали свойства с поддержкой запросов, и мне было любопытно, есть ли недостатки.Может быть, негативное влияние на производительность в десятках мест, где это используется?Всегда ли он загружен с нетерпением, а время запроса немного больше?

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