>     Моё отношение к прогрессу:
> 1. Докажи, что без этого чего-то сделать невозможно.
> 2. Не смог - докажи, что это даёт существенное увеличение
> производительности СЕРВЕРА, а не программиста, в достаточно широком
> классе задач,

Гм... может я в чем-то ошибаюсь, но я
вижу, что весь мир движется по
направлению к облегчению жизни именно
программистов, читай людей, а не
"серверов". Другое дело, что кто-то
может переусердствовать, не будем
упоминать в суе кто именно :) К примеру,
добавление Олегом в Yaffil встроенных
функций демонстрирует гуманный подход
к людям в своем лучшем виде. Ведь без
них же можно смело обойтись, сделав
реализацию в UDF! Однако, как приятно и
УДОБНО, что этого делать не надо. Я уже
не говорю про экономию времени и сил на
сотворение _элементарных_ UDF и их
неминуемую отладку, что еще не
гарантирует, что багов в результате не
будет.

Вопросы разного рода логирования и
репликации были, есть и, смотрю, долгое
время еще будут актуальными в нашем
народном сервере. Потому как все
"лучшее" серверу, а программистам - в
очередь на курсы по проктологии :)

Еще надо смотреть с точки зрения
сложности реализации фичи в сервере и
на соотношение стоимость
реализации/польза на выходе. К слову,
никто из Чапаев не высказался по этому
вопросу. И если там делов "на две строки
и на бутылку пива", то польза от CURRENT_TABLE
будет многократно больше (плюс уже
куча всяких CURRENT_XXXXXXX имеется), не
смотря, что могут сделать только к
версии 4.0. Если там гиенна огненная это
делать, тогда совсем другой разговор и
CURRENT_TABLE этого просто не заслуживает.

> а не в той личной проктологии, в которую ты сам себя
> загнал, забивая болт на правила проектирования.

На правила проектирования и
проктологические аспекты тоже может
быть разное видение. К примеру, вместо
того, чтобы, допустим, в коде каждого
триггера (отдельного) просто повторить
ОДНУ строку:
  EXECUTE PROCEDURE (CURRENT_TABLE, NEW.ID/OLD.ID, <тип
операции>);
и при этом НЕ ТРОГАТЬ логируемые
таблицы вообще на каком-либо уровне,
включая логический (это значит, что
можно добавить/изъять или
включить/выключить целую
функциональную логическую часть
системы, что другие части даже об этом
_не догадаются_ - обращаю на это
внимание отдельно) поступают
предложения:
  - прописывать руками имена таблиц как
строковые константы (вспоминаем
Коваленко, когда он говорил, что где-то
забыл триггер сделать, здесь можно
просто сделать ошибку в букве)
  - добавления доп полей в таблицы
(размазывать логику логирования по
всем таблицам в виде доп полей)
  - использования DEFAULT полей с именем (в
каждое таки надо прописать руками имя
таблицы)
  - упоминание про GET/SET CONTEXT
  - кто-то еще призагнул про какие-то
ветвления по имени таблицы, вообще не
разобравшись в сути треда (это уже
проблемы индейцев и где-то таки может
быть удобным)

И это все менее проктологичнее одной
строки кода, плюс сделанной
автоматически? (конечно, при прочих
равных условиях)

Чем плохо, когда пользователь просто
пометит чекбокс на клиенте в сетке
напротив имени таблицы, а в это время
для этой таблицы _на стороне сервера_
сгенерится триггер на поддержку
логирования? Стоимость решения на
клиенте - стремится к 0. Т.е. просто
включить/отключить чекбокс с коммитом.
Т.е. вообще ничего, по сути. Вместо
этого мне надо делать на клиенте код
генерации триггеров? Это дешевле? Он у
меня есть, но в данном случае, я хочу,
чтобы даже его не было (в общем, это не
относится к CURRENT_TABLE).

> 4. Ничего доказать не смог - иди в сад со своими хотелками.

Голос из сада :))):  имхо, если в
триггерах кому-то надобится иметь
непосредственное название таблицы, то
CURRENT_TABLE уже автоматически лучше, со
всеми вытекающими, чем прописывать
'MY_TABLE_NAME' в каждом разе. И это все просто
БЕЗОТНОСИТЕЛЬНО к разного рода
проктологическим приемам.

Ответить