Тоже используем такую же таблицу аудита с собственными пакетами, которые помимо самих процедур изменения объектов, содержат процедуры для восстановления измененных данных.
Дабы отсекать всякие извращения с заменами букв посреди слова, нужно принудительно транслировать их в язык превалирующий в данной фразе и выдавать именно в транслированном виде(просто получать их транскрипцию в этот язык). Например: Я пошел купить hleba => Я пошел купить хлеба.
Таким образом отсекутся слова с замененными схожими буквами и их проще будет проверять, и после транслирования они уже не будут матами. Но будет проблема со всякими именами, аббревиатурами и тд.
Да, я как раз про Soundex хотел сказать, он описан у Кнута в «Искусстве программирования». Такая встроенная функция даже есть в oracle, но, к сожалению, работает только с английским.
Любимая моя книга у Олдей, но там вроде были разумные мечи, которые думали, что управляли людьми, но в ходе книги выясняется, что просто они были взаимным дополнением друг друга и думали одинаково.
Таким образом отсекутся слова с замененными схожими буквами и их проще будет проверять, и после транслирования они уже не будут матами. Но будет проблема со всякими именами, аббревиатурами и тд.
/me в свое время штудировал algolist.manual.ru