|
ввод данных
|
|||
---|---|---|---|
#18+
Существует таблица table c полями price,kol,sum. Создаю форму для ввода данных: Цена: [price] Кол-во: [kol] Сумма: [price]*[kol] Как зделать так, чтобы значение суммы заносилось в поле таблицы sum? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2002, 03:31 |
|
ввод данных
|
|||
---|---|---|---|
#18+
А зачем вообще хранить сумму? Ее в любой момент можно вычеслить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2002, 04:17 |
|
ввод данных
|
|||
---|---|---|---|
#18+
В Access нет триггеров. Поэтому придется вешать на событие AfterUpdate для каждого поля формы (!), т.е. для [price] и [kol], подрограммку для вычисления [price]*[kol] и помещения значения в нужное поле (т.е. изменить св-во Value для итогового поля). Ясно, если кто-то поменяет значение не в форме, а в таблице, то ничего не получится. 2SysOp Бывает, когда такое поле [Сумма] очень часто используется в запросах. Зачем его постоянно вычислять? Память сейчас стОит не так дорого, как лет 20 назад. Поэтому такое поле лучше сразу вычислить и хранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2002, 07:09 |
|
ввод данных
|
|||
---|---|---|---|
#18+
2 BAlex Oбъем памяти, объем дискового пространства, колличество тиков процессора при операциях с данными имеют в этом случае второстепенное значение, хотя третью нормальную форму (оптимальность использования которой математически обоснована) никто не отменял. А первостепенное значение имеет целостность и непротиворечивость данных. В случае изменения количества или цены придется каждый раз упдейтить и сумму. Мало того что это избыточная информация, это еще и геморой для программиста и потенциальный источник ошибок при кривой реализации или сбое. Или Вы будете доказывать, что все операции нужно выполнять в транцакции? В .mdb,в отличии от .adp. это невозможно. Так что дело конечно Ваше, но любой опытный разработчик СУБД в ДАННОМ СЛУЧАЕ сумму хранить не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2002, 08:16 |
|
ввод данных
|
|||
---|---|---|---|
#18+
В mdb я б сумму и не хранил: никакой уверенности в ее достоверонсти не будет. На SQL Servere есть Computed Column. Опытные разработчики СУБД такие поля используют? P.S. Не могу назвать себя опытным разработчиком ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2002, 11:36 |
|
ввод данных
|
|||
---|---|---|---|
#18+
>В mdb я б сумму и не хранил: никакой уверенности в ее достоверонсти не будет. Тем не менее Вы взялись советовать Andrey K. решение, от которого сами отказались. Вы сами себе противоречите. >На SQL Servere есть Computed Column. Опытные разработчики СУБД такие поля используют? Используют. Только понимают что они виртуальны, т.е. физически не хранятся а при обращении каждый раз вычясляются. Т.е. никакой разницы с тем, если бы вычисление производилось в запросе кроме визуального упрощения. К тому же на такие поля накладывается множество ограничений. P.S. Отрицательный опыт - все равно опыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2002, 06:28 |
|
|
start [/forum/topic.php?fid=45&fpage=1855&tid=1683596]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 132ms |
0 / 0 |