база данных [находится] на основе триггеров и нет никакого фактического ER-модели, которые я мог бы использовать ....
Есть почти никаких внешних ключей.
Должен сказать, что звучит так, как будто вы плохо осведомлены. У вас есть академический проект, дизайн которого не использует обычные внешние ключи и который не может быть смоделирован с диаграммой отношений сущностей?
только с помощью триггера для взаимодействия с таблицами
Триггеры были изобретены до того DRI был определен в стандарте SQL. IIRC, они были изобретены Sybase примерно в 1986 году. Если их использование ограничивается применением ограничений ссылочной целостности - как и должно быть - они будут использоваться сдержанно. В большинстве случаев применение RI с момента появления SQL-92 легко и желательно предоставляется декларативно в схеме базы данных. Триггеры сегодня правильно воспринимаются как устаревшие и экзотические: в значительной степени заменяются DRI, и иногда полезны в качестве обходного пути в странных ситуациях.
Может ли взаимодействие базы данных только через триггеры? Тривиально, нет. Триггер не может вставлять новые данные. Без смешных поворотов триггер не может выбрать данные, которые будут возвращены в приложение. Но в любом случае это едва база данных дизайн вопрос: наблюдения сохраняются независимо от соответствующих таблиц.
Еще одна причина добавить к списку [причины не использовать хранимые процедуры] (http://stackoverflow.com/a/6369030/256196) – Bohemian
Да, у вас там есть точка ... :) –
Я был плохо шрамы, построив всю бизнес-логику компании в SP (по общему признанию, не так много триггеров) - и это был весь мой дизайн! Это сработало, но эй ... никогда больше. Я также возглавляю (технически и политически) общую переписку с помощью кода приложения. Использование БД для не-БД - это безумие. Это сводится к следующему: только потому, что вы * можете * что-то делать с помощью определенного программного обеспечения, не означает, что вам нужно. – Bohemian