|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Таблоид> ну так вот: чем этот вариант "худший из возможных" ? Основных вариантов всего 3: 1. Триггер. Пока всё так просто - лучший вариант. 2. ХП, делающая всё, что нужно, по номеру заказа. Подробности вытаскивает сама, но они уже в кеше, пэтому "с диском" проблем не будет. Хуже 1, лучше 3. 3. Твой вариант ХП с плохим дизайном. Худший. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 19:55 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
mandarina> так? Ну типа того, только я бы ещё по переменным разложил, не люблю такие портянки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 19:56 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамМой сегодня на полке, поэтому я этот момент уточнил. :) А, да. Зафлудили этот момент как-то... mandarinaтам должно быть так: заказ(id_заказа, id_сборки, id_доставки, id_товара, сумма) Нет, Рина, так быть не должно, ибо это нарушение второй нормальной формы, которое карается геморроем. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:00 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Большое спасибо за помощь! Все работает как надо))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:01 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамТаблоид> ну так вот: чем этот вариант "худший из возможных" ? Основных вариантов всего 3: 1. Триггер. Пока всё так просто - лучший вариант.Ога. Особенно когда в таблице будут меняться поля НЕ из списка тех, что нужны для расчета суммы. И триггер сей всё равно будет дёргать все три(?) таблицы, чтобы обновить сумму, которая окажется той же самой :-) Гаджимурадов Рустам2. ХП, делающая всё, что нужно, по номеру заказа. Подробности вытаскивает сама, но они уже в кеше, пэтому "с диском" проблем не будет. Хуже 1, лучше 3.Откуда дровишки, что "они уже в кеше", если передаётся только номер заказа ? Ты утверждаешь, что при таком раскладе никогда не будет reads > 0 ? Гаджимурадов Рустам3. Твой вариант ХП с плохим дизайном. Худший.По дизайну - да, худший. По производительности - лучше, чем "2" (и тем более "1"), если значения наценки/доставки и прочего уже известны в вызывателе. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:07 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Таблоид> Особенно когда в таблице будут меняться поля Таблоид> НЕ из списка тех, что нужны для расчета суммы. Таблоид> И триггер сей всё равно будет дёргать все три(?) таблицы, Таблоид> чтобы обновить сумму, которая окажется той же самой :-) Во-первых, это будет и в твоём варианте, так что чья бы мычала. :) Во-вторых, никто не запрещает это проверять и не дергать. > Откуда дровишки, что "они уже в кеше", если передаётся только номер заказа ? Не понял вопроса. В триггере на инсерт-апдейт записи данные уже в кеше во всех нормальных ситуациях. > По производительности - лучше, чем "2" Ненамного, я полагаю. Таблоид> (и тем более "1") Нет, конечно. Конечно, много хуже. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:19 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
mandarina> Все работает как надо))) Вообще говоря, то, что ты написала - это на четвёрку с минусом. Так что тебе удачи, а преподу превед. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:20 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, главное сдать работу) Спасибо, передам))) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:27 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамВо-первых, это будет и в твоём варианте, так что чья бы мычала. :) Во-вторых, никто не запрещает это проверять и не дергать.1) я НЕ предлагал вызывать ХП из триггера. И вообще пришёл как-то к "фундаментальному открытию", что row-level триггеры, дёргающиеся как свиньи на верёвке на каждый чих, по поводу и без него, есть одна из сторон Мирового Зла.. :-) 2) ХП должна вызываться только из тех мест, где действительно надо обновлять итоговую сумму заказа. Звучит как Вселенская Ересь, согласен, но главное - поменьше триггеров! Код в таком случае становится больше, появятся дублирующиеся вызовы или, еще хуже, просто повторы кусков кода, легко забыть вызвать эту ХП - всё так. Но по производительности это точно будет выигрыш. Гаджимурадов РустамНе понял вопроса. В триггере на инсерт-апдейт записи данные уже в кеше во всех нормальных ситуациях.Про КАКУЮ таблицу вот из этих: Код: plaintext 1. 2. 3. 4.
Допустим, усер выбрал в своём приложении сборку, доставку и товар (через листбокс или еще чего-то там) - да, затащил в страничный кеш ФБ эти данные из соотв. справочников. Затем пожевал 5-10 минут, перетёр что-то с клиентом, и жмякнул "ОК". В этот момент в таблицу "заказ" добавляется строка с известными id_сборки, id_доставки, id_товара. Но откудова уверенность, что прочитанные N минут взад данные по ценам - еще сидят в кеше ? К тому же, нормальная аппликуха должна перечитать цены в момент жмякания "ОК", потому что они (цены!) могли измениться за то время, пока усер что-то там решал. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 20:47 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Таблоид> я НЕ предлагал вызывать ХП из триггера Это было дефолтным изначальным вариантом. Если ты что-то там имел в виду в подкоре, но молчал как партизан - это твои проблемы. :) > есть одна из сторон Мирового Зла.. :-) Это твои страхи и заблуждения, не более. Изначальное правило, о котором ты пытаешься мне напомнить, звучало совсем иначе. > ХП должна вызываться только из тех мест, где действительно надо Дальше можно не читать. Все что угодно должно вызываться только из тех мест и только тогда, когда действительно надо, и не вызываться из тех мест и тогда, когда не надо. Касательно сабжа, если ты про вызов с клиента при "Сохранить заказ" - это путь к отсутствию целостности в БД и тройке по курсовой. > Про КАКУЮ таблицу вот из этих: ты говоришь ? Про все, есессно. > Но откудова уверенность, что прочитанные N минут взад данные по ценам - еще сидят в кеше ? Я разверну этот вопрос тебе же, сам над ним подумай и доложи сюда ответ, а то аж позоришься. :-) Ей Богу, даже подсказывать неудобно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 21:12 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам> Но откудова уверенность, что прочитанные N минут взад данные по ценам - еще сидят в кеше ? Я разверну этот вопрос тебе же, сам над ним подумай и доложи сюда ответ, а то аж позоришься. :-) Ей Богу, даже подсказывать неудобно. Гы... вспомнилось: у нас в институте курс был, История КПСС и М-Л философия (нахрена он был нужен технарям - другой вопрос). И вёл его препод, которому задаёшь вопрос "а как вы объясните то-то", а он: "я бы поставил вопрос по-другому", "ваш вопрос слишком второстепенен", "сходите в деканат, там вам всё объяснят" (с занесением в учетную карточку комсомольца :)), "как вы в иинститут попали ?! вам не стыдно задавать такие глупые вопросы ?" или вообще: "а какой ответ вы ожидаете услышать?" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 21:48 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Таблоид> Гы... вспомнилось А мне почему-то вспомнились Деда и Диля, "особливо на ляпасинах". Но если ты сильно настаиваешь, могу, конечно, "объяснить", "ответить", "рассказать", "изложить" или как тебе там угодно. Могу даже с примерами - на ляпасинах там, на ежах, ужах, моржах... Не так красиво как Деда, конечно, но всё же. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 21:59 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Объясни только вот это, плз:откудова уверенность, что прочитанные N минут взад данные по ценам - еще сидят в кеше ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 22:02 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Оттудова, родной, что прочитанные N минут критичные данные по любым ляпасинам перед любым "использованием" либо держатся в снапшоте (а долгих снапшотов не бывает), либо всегда перечитываются перед (и соответственно точно есть кеше). Дальше объяснять? P.S. Да, и цак надень. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2015, 23:24 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Только меня смутил smallint для ID ? mandarina Код: sql 1.
Или сейчас он уже не настолько small ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 05:18 |
|
как посчитать сумму заказа?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустампрочитанные N минут критичные данные <...> всегда перечитываютсяну, и ? вот тебе их надо перечитать - и что, они перед этой перечиткой всегда в кеше торчат, да ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2015, 08:52 |
|
|
start [/forum/topic.php?fid=40&msg=38974764&tid=1562803]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 20ms |
total: | 143ms |
0 / 0 |