![]() |
|
Модераторы: gambit |
![]()
|
|
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
Есть Юзеры на счет которых приходят условные пункты, после определенных действий юзера;
Юзеры могут свои пункты тратить, на определенные вещи; Каждый Юзер может смотреть свое состояние "Счета" и свои приходы(и по какому поводу), расходы(и по какому поводу)... "Хозяин базы" может смотреть всевозможные отчеты и статистики... Порассуждав немного и прикинув - сколько будет записей, можно сделать вывод, что состояние счета Юзера простым суммированием в таблице приходы и отниманием суммы из таблицы расходы, будет очень "накладно(время)" для БД... Kак это делается в подобных случаях(например банковские счета, кредитные карточки и. т.д.)? |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Проще всего поставить триггер на insert, update и delete для таблицы с приходами-расходами; этот триггер выполнит суммирование денег на счёту и обновит таблицу с суммами (это отдельная таблица). Так мы добъёмся того, что вычисления будут выполняться только тогда, когда что-то действительно меняется, и автоматически.
-------------------- ![]() |
|||
|
||||
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
||||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Pankon, количество таблиц принципиального значения не играет. Если таблиц две, просто будет два одинаковых триггера. Например, имеем структуру БД как на приаттаченном скриншоте. Тогда для создания триггера для таблицы Prihods надо выполнить такой SQL:
Для таблицы Rashods всё будет то же самое, кроме первых двух строчек:
Добавлено @ 12:58 З.Ы. ещё есть такая штука как Computed columns (по крайней мере в 2005-м точно есть, в 2000-м не помню), вроде можно сделать вычисляемую колонку обновляемую автоматически. Присоединённый файл ( Кол-во скачиваний: 9 )
db_shot1.JPG 16,18 Kb-------------------- ![]() |
||||
|
|||||
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
||||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Это есть в SQL Server books online, я с этим не работал но пару раз натыкался - это что-то вроде полей, которые хранятся в БД, но автовычисляются. По ним индексы строить можно и т.п. ИМХО, для твоей задачи моих триггеров достаточно -------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |