Перейти к содержимому


избирательная работа с записями в базе


Сообщений в теме: 30

#21 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 07 Август 2012 - 13:48

Просмотр сообщенияAnalitic (07 Август 2012 - 13:27) писал:

Попробуйте сначала сами отключить все вычисления в таблице Договор.
Ошибка исчезла при отключении вычисления, которое содержит одну строчку
$line['Клиент']=$line['Заказ']['Заказчик']['ID'];
Это как-то перекликается с моим сообщением выше.
Если $line['Заказ']['Заказчик']['ID'] содержит null - это может вызывать ошибку?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#22 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 07 Август 2012 - 13:57

Просмотр сообщенияandibrag (07 Август 2012 - 13:41) писал:

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

Просмотр сообщенияandibrag (07 Август 2012 - 13:41) писал:

Иногда настройку ПРИ ОТОБРАЖЕНИИ, не заменить на что-то иное.
Пример?

#23 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 07 Август 2012 - 13:59

Просмотр сообщенияandibrag (07 Август 2012 - 13:48) писал:

Это как-то перекликается с моим сообщением выше.
Если $line['Заказ']['Заказчик']['ID'] содержит null - это может вызывать ошибку?
Само по себе: Нет. Но возможно опять же у вас существуют другие вычисления, которые в этом случае вызывают ошибку.

#24 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 07 Август 2012 - 14:08

Просмотр сообщенияAnalitic (07 Август 2012 - 13:57) писал:

Пример?
У меня есть поле, которое собирает информацию из многих таблиц одновременно. Нечто вроде маяка, сигнализирующего о наличии проблемы в прохождении заказа. Таблицы заполняются другими пользователями - каждый отвечает за свое. При отображении записи - срабатывает вычисление и собирается актуальная на момент просмотра информация.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#25 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 07 Август 2012 - 14:15

К этой проблеме можно подойти с другой стороны:
1. Отчет зависит только от данных в таблицах. При заполнении таблицы пользователями, ставиться событие - при изменении. Соответсвенно отчеты о наличии проблемы формируется при изменении данных, и срабатывают сразу, а не когда пользователь посмотрит и не тормозят при просмотре таблицы отчетов.
2. Отчет зависит также от текущей даты. Например просмотр, просроченных заказов. Должен выполняться в cron.

#26 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 07 Август 2012 - 14:44

1) Такой вариант пытались реализовать. При наличии вложенности 3 и более уровней Заказ-Наряд-Субподряд и т.д. вносить данные в каждую последующую материнскую таблицу из ниже расположенной оказался не самый лучший вариант. Изменение структуры сводит на нет все вычисления в полях. Сейчас сделано так - материнская собирает данные из дочерних таблиц, расположенная выше таблица собирает данные из материнских 2-го уровня и т.д.
2) Насчет крон мысль тоже была, но реализация через вычисление при отображении поля остановила от дальнейших усовершенствований.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#27 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 07 Август 2012 - 15:01

Просмотр сообщенияandibrag (07 Август 2012 - 14:44) писал:

1) Такой вариант пытались реализовать. При наличии вложенности 3 и более уровней Заказ-Наряд-Субподряд и т.д. вносить данные в каждую последующую материнскую таблицу из ниже расположенной оказался не самый лучший вариант. Изменение структуры сводит на нет все вычисления в полях. Сейчас сделано так - материнская собирает данные из дочерних таблиц, расположенная выше таблица собирает данные из материнских 2-го уровня и т.д.

Вычисление при изменении можно каскадировать. При изменении в дочерних, вычисляем значение для материнских. Пишем значение с помощью update_query, оно автоматически вызовет вычисление при изменении в материнской таблице, которое запишет данные в материнскую второго уровня. Заметье, если в материнской таблице изменений не произошло, то вычисления в материнской 2-го уровня не будут вызваны.

Не совсем понятно с изменением структуры. Что именно?, переименование поля? Можно использовать f244 форматы имен. Полное изменение структуры? В этом случае полюбому вычисления придется менять.

#28 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 08 Август 2012 - 18:48

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

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#29 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 08 Август 2012 - 19:02

Просмотр сообщенияAnalitic (07 Август 2012 - 13:11) писал:

Исправлено в новой ревизии
поставил от 7 числа - результат прежний, или еще не выгружали?

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#30 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 09 Август 2012 - 15:16

не выгружали. Выгружена сегодня в 16.15. Обновитесь будет от 9 числа.

#31 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 09 Август 2012 - 15:21

Просмотр сообщенияAnalitic (09 Август 2012 - 15:16) писал:

не выгружали. Выгружена сегодня в 16.15. Обновитесь будет от 9 числа.
спасибо, с нулями проблема решена
по остальным вопросам общаюсь с Тимуром

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения






Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных