Классический случай Master-Detail: Имеются две таблицы Orders -- с заказами и Sales -- со списком товаров в заказах. В Sales есть вешний ключ: | Код | CONSTRAINT FK_SALES_ORDERID FOREIGN KEY (ORDERID) REFERENCES ORDERS (ID) |
Нужно, к примеру узнать общую сумму заказа. Как это лучше сделать:- Создать в Oredrs вычисляемое поле типа
| Код | AMOUNTPAID COMPUTED BY ((select Sum(Sales.Price) from Sales where Sales.Orderid=Orders.Id)) |
- Создать View, который будет выбирать Orders.* и суммировать соответствующие sales.price
- Не создавать в базе ничего, а напрямую писать SQL- выборку в программе-клиенте.
Какая из форм реализации (по сути они одинаковы) наиболее оптимальна для базы на Firebird 1.5.2 с небольшим количеством пользователей (до 10)?
ЗЫ. Ногами по чайнику сильно не бить. |