|
|
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Задача: есть некий Параметр который равен, к примеру 1 все время, за исключением каких-нибудь условий Пример: коэффициент наценки = 1 во всех городах, кроме Москвы в которой он = 2 Как такое реализовать? ежели взять и решать в лоб - Таблица коэффициентов -------------------------- 1.Населенный пункт 2.Коэффициент то на каждый чих (изменение обычного коэффициента) придется обновлять здоровенную таблицу (не говоря уж о ее создании) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 18:04 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
sp, Отдельно храните к-т по умолчанию ("1"). Соответсвует городу Null Далее для всех городов-исключений в данной таблице Свой к-т. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 18:13 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
spЗадача: есть некий Параметр который равен, к примеру 1 все время, за исключением каких-нибудь условий Пример: коэффициент наценки = 1 во всех городах, кроме Москвы в которой он = 2 Как такое реализовать? ежели взять и решать в лоб - Таблица коэффициентов -------------------------- 1.Населенный пункт 2.Коэффициент то на каждый чих (изменение обычного коэффициента) придется обновлять здоровенную таблицу (не говоря уж о ее создании) Хранить 1 запись "коэффициент для Москвы" и 1 запись "коэффициент пол умолчанию".Использовать, соответственно, isnull(ТаблицаКоэффициентов.Коэффициент, ТаблицаКонстант.КоэффициентПоУмолчанию) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 18:14 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Естественно исключений может быть несколько, но несопоставимо меньше чем остальных случаев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 18:50 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
dvim, Кот Матроскин, прошу прощения, но хотелось бы архитектурное решение, а не затычку..( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 19:12 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Проблема при решении в лоб осложняется при добавлении, к примеру городов, - необходимо при создании города указывать еще и наценку и коим-то образом помнить значение по-умолчанию или значение для исключения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 19:19 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
В таблице храните только исключения. Ф-цией или подзапросом зачитывайте из нее. Если Null то =1. как-то так: ISNULL(dbo.GetCityKoef(City), 1) * price ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 19:56 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
spdvim, Кот Матроскин, прошу прощения, но хотелось бы архитектурное решение, а не затычку..( Вопросы такого рода (настройка параметров) здесь обсуждаются постоянно. См., например, 13768063 В Вашем случае, вероятно на двух уровнях: в Параметрах системы и в соответствующем типе сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2013, 20:26 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Еще тынц Заключительное сообщение от softwarer формулирует итог исчерпывающим образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 12:45 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherЕще тынц Заключительное сообщение от softwarer формулирует итог исчерпывающим образом. Только не для этой задачи:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 13:24 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Склоняюсь к декларативному варианту с процедурной/триггерной обработкой вставки данных в таблицу городов - где после вставки данных в таблицу городов вставлять данные в таблицу "ГородаНаценки" Таким образомданные в базе будут в "нормальном" представлении, а вся муторная логика в одном месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 15:38 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
sp, Как Вы в этом случае будете отличать ситуацию "наценка для города есть [и случайно совпадает со значением по умолчанию] и "наценки для города нет, берется значение по умолчанию"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 15:59 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
> варианту с процедурной/триггерной обработкой вставки данных в таблицу городов Телепатически могу предположить, что ваша задача - модный нынче геотаргетинг. Параметр, о котором вы говорите, - не абстрактная цифра, а некая эмпирическая зависимость между ценообразованием и, например, средним уровнем доходов населения. Рациональным было бы решение, основанное на административно-территориальном делении, но по схеме, приведенной Котом Матроскиным: значение по умолчанию + исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 16:26 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинsp, Как Вы в этом случае будете отличать ситуацию "наценка для города есть [и случайно совпадает со значением по умолчанию] и "наценки для города нет, берется значение по умолчанию"? по-умолчанию городу будет присваиваться стандартная наценка, а в случае надобности - админ установит исключение для данного города ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 17:05 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
sp, еще раз. По умолчанию у нас наценка 1. Мы знаем, что для города N есть исключение (наценка считается по другим законам), но результат получился все равно 1 (так совпало). В один прекрасный момент мы решаем, что наценка по умолчанию будет теперь 1,5 - то есть, по Вашей схеме, нам надо изменить наценки у всех городов, по которым нет исключений Как разрулится ситуация с городом N? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 17:54 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, руками админа - ведь данные поменялись, их соответственно кто-то должен ввести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 14:29 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
sp, Я бы сделал дерево - страна-регион-...-город. В корне прописал бы дефолт, а если для допустим Дальнего Востока (исключительно как пример) есть свой дефолт, то там его прописать. Тогда поиск действующего кэфа для города делается очень быстро: идете по дереву от города вверх и первое же not NULL-значение - то что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 19:27 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegaelsp, Я бы сделал дерево - страна-регион-...-город. В корне прописал бы дефолт, а если для допустим Дальнего Востока (исключительно как пример) есть свой дефолт, то там его прописать. Тогда поиск действующего кэфа для города делается очень быстро: идете по дереву от города вверх и первое же not NULL-значение - то что нужно. Во-первых, Вы забыли параметр для всех стран, а во-вторых, группирование (тип города) может осуществляться и по другому критерию. Как правило, применяют трехуровневую параметризацию по схеме "сущность-тип-система" 13874534 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 20:50 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Бредятина, Мне кажется несколько наивным предполагать возможность существования дефолта, подходящего для разных стран :) Но если так уж хотите, можете хранить его в глобальной таблице настроек или в самом верхнем, синтетическом узле. "Как правило, применяют" - это ваше личное правило? Да без проблем, мне-то что. ТС сам разберется, что ему больше подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 08:04 |
|
||
|
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegaelsp, Я бы сделал дерево - страна-регион-...-город. В корне прописал бы дефолт, а если для допустим Дальнего Востока (исключительно как пример) есть свой дефолт, то там его прописать. Тогда поиск действующего кэфа для города делается очень быстро: идете по дереву от города вверх и первое же not NULL-значение - то что нужно. Самое правильное решение. Главное дерево не делать сбалансированным, тогда вообще возможностям не будет предела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 09:24 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38144091&tid=1541376]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 352ms |

| 0 / 0 |
