какой лучший способ сделать эту операцию - PullRequest
1 голос
/ 26 января 2010

У меня вопрос о том, как лучше всего выполнить эту операцию: У меня есть база данных, давайте предположим, что у нее есть 4 таблицы (число таблиц может увеличиться намного выше), когда я хочу сделать какие-либо операции CRUD (Вставка, обновление, удаление) для таблиц1, таблиц2 и таблиц3, я должен сделать то же самое операции с таблицей4, теперь таблица4 очень важна, поэтому я должен убедиться, что все операции выполняются точно и быстро, в конечном итоге эта таблица будет использоваться для получения системных отчетов, поэтому мне нужно, чтобы она была быстрой Теперь какой из следующих двух способов будет лучше:

-Первый метод происходит в базе данных, поэтому я создаю хранимую процедуру или триггер и когда любая операция выполняется в любой таблице (таблица1, таблица2, таблица3), это активирует триггер, который выполняет ту же операцию В таблице 4

-Второй метод происходит в программном коде (asp.net и c #), когда любая операция выполняется для любой таблицы (table1, table2, table3). Я делаю ту же операцию для table4, используя класс или любой код для этого.

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

спасибо

Ответы [ 2 ]

1 голос
/ 26 января 2010

Если вы имеете в виду, что table4 предназначен только для чтения и используется для генерации отчетов, это должно быть представление, а не таблица. Но если это таблица, делать это на уровне базы данных с помощью триггеров хорошо. Поскольку это быстрее, безопаснее и в будущем, если какие-либо другие приложения обновят другие таблицы, данные автоматически обновляются в таблице 4, и логику приложения не нужно повторно реализовывать.

0 голосов
/ 26 января 2010

Мне нравится идея Teja использовать представление для table4, если это работает (то есть, эта таблица не содержит никаких данных, кроме таблиц1, table2 или table3).

При рассмотрении вопроса об использовании хранимых процедур подумайте о том, что произойдет, если что-то изменится со схемой любой из таблиц. Что делать, если вам пришлось пересмотреть каждую хранимую процедуру и изменить ее? Если их много, это может потребовать больших усилий и создать возможности для создания ошибок.

Триггеры легче изменить, чем хранимые процедуры. Но они несут стоимость производительности. Они могут реально замедлить работу вашего приложения, если во многих таблицах есть триггер для каждой операции записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...