Содержание
- 2. Когда нужны триггеры? Пример 1, складской учет методом FIFO (First In First Out) Товар, пришедший на
- 3. Складской учет: схема процесса Склад 1 Склад 2 поставка поставка возврат поставщику продажа продажа возврат от
- 4. Документы складского учета Как узнать остаток товара??? Список товаров Товар Цена Количество Список товаров Товар Цена
- 5. Суммирование по спискам товаров из разных документов не подойдет: Много однотипных запросов к разным таблицам; Придется
- 6. Решение: создаем реестр операций складского учета
- 7. Реестр операций складского учета поставка
- 8. Реестр операций складского учета поставка
- 9. Реестр операций складского учета поставка продажа
- 10. Реестр операций складского учета поставка продажа Как поддерживать актуальность данных в реестре?
- 11. База данных Программа складского учета Бухгалтерская программа Кассовый аппарат Другие программные продукты
- 12. Триггеры для построения реестра
- 13. Триггеры для построения реестра поставка
- 14. Триггеры для построения реестра поставка Триггер
- 15. Триггеры для построения реестра поставка
- 16. Триггеры для построения реестра поставка
- 17. Триггеры для построения реестра поставка Триггер
- 18. Триггеры для построения реестра поставка
- 19. Триггеры для построения реестра поставка Нужна процедура полного или частичного пересчета реестра!
- 20. Хранимые функции getGoodsRemainder (товар, дата, склад) - возвращает остаток товара на заданную дату на конкретном складе
- 21. Оценим решение? Плюсы: + все работает очень быстро! + легко добавлять новые типы документов; + сторонние
- 22. Оценим решение? Минусы: - данные о каждом перемещении хранятся в базе дважды; - при создании этой
- 23. Когда нужны триггеры? Пример 2, права доступа и построение списка записей Список клиентов Список пользователей Настраиваемые
- 24. Задача: Показать пользователю список клиентов с постраничной навигацией Для этого надо: 1. Получить общее число клиентов,
- 25. Как реализуем? Вариант 1 Создать в PHP функцию GetRights (user, record, module), которая: А) Построит список
- 26. Оценим? Вариант 1 + Для определения доступа к одной записи – просто и надежно. С большим
- 27. Как реализуем? Вариант 2 Кэшировать результат расчета прав в БД. Пересчитывать фрагмент кэша из PHP каждый
- 28. Как реализуем? Вариант 3 Создадим хранимую функцию, которая будет вычислять и возвращать права доступа для любой
- 29. Оценим? Вариант 3 + Быстрее, чем считать права в PHP. Сложная генерация синтаксиса функции. С большими
- 30. Как реализуем? Вариант 4 Объединим варианты 2 и 3. А) Реализуем специальную таблицу – кэш в
- 31. Схема базы данных Очередь Клиент Пользователь Кэш Клиент Пользователь Эффективные права Триггеры Триггеры Асинхронная процедура расчета
- 32. Оценим? Вариант 4 + Очень быстро! Сложная генерация синтаксиса функции. Иногда права вычисляются не сразу. Можем
- 33. Как реализуем? Вариант 5 Усовершенствуем механизм. А) Не будем хранить в кэше нулевые значения. Б) Не
- 34. Оценим? Вариант 5 + Еще быстрее! Усложнился PHP-код системы прав доступа. Можем работать со списками в
- 35. Результаты Обеспечена работоспособность списка записей, содержащего сотни тысяч значений. Сохранена гибкость системы – администратор имеет возможность
- 36. Выводы! 1. При помощи MySQL можно решать сложные вычислительные задачи, возникающие при создании бизнес-приложений. 2. Создание
- 38. Скачать презентацию