Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Исключения: или - тут читаем, тут не читаем, тут рыба лежала... / 21 сообщений из 21, страница 1 из 1
04.02.2013, 18:04
    #38136832
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Задача: есть некий Параметр который равен, к примеру 1 все время, за исключением каких-нибудь условий
Пример: коэффициент наценки = 1 во всех городах, кроме Москвы в которой он = 2

Как такое реализовать?
ежели взять и решать в лоб -

Таблица коэффициентов
--------------------------
1.Населенный пункт
2.Коэффициент

то на каждый чих (изменение обычного коэффициента) придется обновлять здоровенную таблицу (не говоря уж о ее создании)
...
Рейтинг: 0 / 0
04.02.2013, 18:13
    #38136854
dvim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
sp,

Отдельно храните к-т по умолчанию ("1"). Соответсвует городу Null
Далее для всех городов-исключений в данной таблице Свой к-т.
...
Рейтинг: 0 / 0
04.02.2013, 18:14
    #38136858
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
spЗадача: есть некий Параметр который равен, к примеру 1 все время, за исключением каких-нибудь условий
Пример: коэффициент наценки = 1 во всех городах, кроме Москвы в которой он = 2

Как такое реализовать?
ежели взять и решать в лоб -

Таблица коэффициентов
--------------------------
1.Населенный пункт
2.Коэффициент

то на каждый чих (изменение обычного коэффициента) придется обновлять здоровенную таблицу (не говоря уж о ее создании)

Хранить 1 запись "коэффициент для Москвы" и 1 запись "коэффициент пол умолчанию".Использовать, соответственно, isnull(ТаблицаКоэффициентов.Коэффициент, ТаблицаКонстант.КоэффициентПоУмолчанию)
...
Рейтинг: 0 / 0
04.02.2013, 18:50
    #38136905
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Естественно исключений может быть несколько, но несопоставимо меньше чем остальных случаев
...
Рейтинг: 0 / 0
04.02.2013, 19:12
    #38136937
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
dvim, Кот Матроскин,

прошу прощения, но хотелось бы архитектурное решение, а не затычку..(
...
Рейтинг: 0 / 0
04.02.2013, 19:19
    #38136940
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Проблема при решении в лоб осложняется при добавлении, к примеру городов, - необходимо при создании города указывать еще и наценку и коим-то образом помнить значение по-умолчанию или значение для исключения
...
Рейтинг: 0 / 0
04.02.2013, 19:56
    #38136988
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
В таблице храните только исключения.
Ф-цией или подзапросом зачитывайте из нее. Если Null то =1.

как-то так:
ISNULL(dbo.GetCityKoef(City), 1) * price
...
Рейтинг: 0 / 0
04.02.2013, 20:26
    #38137022
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
spdvim, Кот Матроскин,
прошу прощения, но хотелось бы архитектурное решение, а не затычку..(
Вопросы такого рода (настройка параметров) здесь обсуждаются постоянно.
См., например, 13768063
В Вашем случае, вероятно на двух уровнях: в Параметрах системы и в соответствующем типе сущности.
...
Рейтинг: 0 / 0
05.02.2013, 12:45
    #38137754
Cane Cat Fisher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Еще тынц

Заключительное сообщение от softwarer формулирует итог исчерпывающим образом.
...
Рейтинг: 0 / 0
05.02.2013, 13:24
    #38137864
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Cane Cat FisherЕще тынц
Заключительное сообщение от softwarer формулирует итог исчерпывающим образом.
Только не для этой задачи:)
...
Рейтинг: 0 / 0
05.02.2013, 15:38
    #38138170
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Склоняюсь к декларативному варианту с процедурной/триггерной обработкой вставки данных в таблицу городов - где после вставки данных в таблицу городов вставлять данные в таблицу "ГородаНаценки"

Таким образомданные в базе будут в "нормальном" представлении, а вся муторная логика в одном месте
...
Рейтинг: 0 / 0
05.02.2013, 15:59
    #38138219
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
sp,
Как Вы в этом случае будете отличать ситуацию "наценка для города есть [и случайно совпадает со значением по умолчанию] и "наценки для города нет, берется значение по умолчанию"?
...
Рейтинг: 0 / 0
05.02.2013, 16:26
    #38138300
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
> варианту с процедурной/триггерной обработкой вставки данных в таблицу городов

Телепатически могу предположить, что ваша задача - модный нынче геотаргетинг. Параметр, о котором вы говорите, - не абстрактная цифра, а некая эмпирическая зависимость между ценообразованием и, например, средним уровнем доходов населения. Рациональным было бы решение, основанное на административно-территориальном делении, но по схеме, приведенной Котом Матроскиным: значение по умолчанию + исключения.
...
Рейтинг: 0 / 0
06.02.2013, 17:05
    #38140450
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Кот Матроскинsp,
Как Вы в этом случае будете отличать ситуацию "наценка для города есть [и случайно совпадает со значением по умолчанию] и "наценки для города нет, берется значение по умолчанию"?

по-умолчанию городу будет присваиваться стандартная наценка, а в случае надобности - админ установит исключение для данного города
...
Рейтинг: 0 / 0
06.02.2013, 17:54
    #38140568
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
sp,

еще раз.
По умолчанию у нас наценка 1. Мы знаем, что для города N есть исключение (наценка считается по другим законам), но результат получился все равно 1 (так совпало).
В один прекрасный момент мы решаем, что наценка по умолчанию будет теперь 1,5 - то есть, по Вашей схеме, нам надо изменить наценки у всех городов, по которым нет исключений
Как разрулится ситуация с городом N?
...
Рейтинг: 0 / 0
07.02.2013, 14:29
    #38141770
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Кот Матроскин,

руками админа - ведь данные поменялись, их соответственно кто-то должен ввести
...
Рейтинг: 0 / 0
08.02.2013, 19:27
    #38144027
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
sp,

Я бы сделал дерево - страна-регион-...-город. В корне прописал бы дефолт, а если для допустим Дальнего Востока (исключительно как пример) есть свой дефолт, то там его прописать.

Тогда поиск действующего кэфа для города делается очень быстро: идете по дереву от города вверх и первое же not NULL-значение - то что нужно.
...
Рейтинг: 0 / 0
08.02.2013, 20:50
    #38144091
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Ennor Tiegaelsp,
Я бы сделал дерево - страна-регион-...-город. В корне прописал бы дефолт, а если для допустим Дальнего Востока (исключительно как пример) есть свой дефолт, то там его прописать.
Тогда поиск действующего кэфа для города делается очень быстро: идете по дереву от города вверх и первое же not NULL-значение - то что нужно.
Во-первых, Вы забыли параметр для всех стран, а во-вторых, группирование (тип города) может осуществляться и по другому критерию. Как правило, применяют трехуровневую параметризацию по схеме "сущность-тип-система" 13874534 .
...
Рейтинг: 0 / 0
11.02.2013, 08:04
    #38145500
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Бредятина,

Мне кажется несколько наивным предполагать возможность существования дефолта, подходящего для разных стран :) Но если так уж хотите, можете хранить его в глобальной таблице настроек или в самом верхнем, синтетическом узле.

"Как правило, применяют" - это ваше личное правило? Да без проблем, мне-то что. ТС сам разберется, что ему больше подходит.
...
Рейтинг: 0 / 0
11.02.2013, 09:24
    #38145536
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Ennor Tiegaelsp,

Я бы сделал дерево - страна-регион-...-город. В корне прописал бы дефолт, а если для допустим Дальнего Востока (исключительно как пример) есть свой дефолт, то там его прописать.

Тогда поиск действующего кэфа для города делается очень быстро: идете по дереву от города вверх и первое же not NULL-значение - то что нужно.

Самое правильное решение. Главное дерево не делать сбалансированным, тогда вообще возможностям не будет предела
...
Рейтинг: 0 / 0
11.02.2013, 09:55
    #38145568
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Исключения: или - тут читаем, тут не читаем, тут рыба лежала...
Ennor Tiegael,

Спасибо, ваше предложение натолкнула на другую мысль - категории городов (список с коэффициентами)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Исключения: или - тут читаем, тут не читаем, тут рыба лежала... / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]