Является ли их любое преимущество в использовании @property Decorator на моделях Django вместо сохранения поля непосредственно в базе данных - PullRequest
0 голосов
/ 11 декабря 2018

Таким образом, поле, которое может быть вычислено как полное_имя из имени и фамилии, мы должны использовать @property для вычисления полного_имя.Но когда нам потребовалось получить список всех «n» лиц с их полным именем.полное_имя будет вычислено 'n' раз, что потребует больше времени, чем просто получение поля из базы данных (если оно уже сохранено как отдельное поле!)Недостаток использования @property для вычисления полного имени?

(Примечание: я рассмотрел другие преимущества @property, такие как уменьшение размера базы данных, не беспокоясь об изменении имени или фамилии без изменения полного имени, функция установки дляустановить имя и фамилию и т. д. Я просто хочу знать преимущество / недостаток времени обработки / выборки по сравнению с сохранением полного имени в базе данных.

1 Ответ

0 голосов
/ 11 декабря 2018

Техника, о которой вы говорите, называется Денормализация .Это довольно продвинутая техника.

Денормализация - это стратегия, используемая в ранее нормализованной базе данных для повышения производительности.В вычислительной технике денормализация - это процесс попыток улучшить производительность чтения базы данных за счет потери некоторой производительности записи путем добавления избыточных копий данных или группировки данных.

Это противоположнобаза данных нормализация .И вы всегда должны запускать ваше приложение с нормализованной базой данных.

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

Первая нормальная форма (1NF):

  • Itдолжен иметь только одно (атомарные) значения атрибутов / столбцов.

Очень простой пример недостатка: UPDATE оператор.Вам нужно получить доступ к 2 столбцам в таблице + вычисление для полного имени.

В любом случае, ваш пример полного имени настолько прост, что вам обязательно нужно сделать это с @ property


Подробнее оэта тема: Разница между нормализацией и денормализацией

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