Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Периодический реквизит (как в 1С) / 10 сообщений из 10, страница 1 из 1
28.03.2007, 17:33
    #34422650
Maker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
есть таблица заказов, но в каждой строке как-то некрасиво хранить фиксированную стоимость, возникла идея с периодическим реквизитом, в котором бы она хранилась.
для начала завести таблицу с тарифами: id, date, sum , где date -дата начала действия тарифа

Но вот как это добро привязывать к таблице заказов - есть две идеи.
1. ссылаться на соответствующий id
2. привязывать тариф по дате оплата заказа

может сталкивались, какие плюсы и минусы у этих подходов?
...
Рейтинг: 0 / 0
28.03.2007, 22:36
    #34423161
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
Кстати,хранить фиксированную стоимость очень красиво,потому как хотя бы при селектах не поползете в другую таблицу.во-вторых когда клиент попросит скидку-будете таблицу тарифа править?а если 20 клиентов со своей скидкой,30,40?делать надо пмсм так(собственно у нас так и сделано)-делаете в таблице заказов поле со стоимостью,поле с id стоимости и автоматически заполняете при вводе заказа эту стоимость.далее в зависимости от ситуации либо оставляете автоматически заполненную стоимость,либо правите уже введенную.потом можно делать отчет вида "а сколько стоимостей отличилось от тарифной" или что еще более полезно в случае четко выраженной попытки ужесточения действий пользователя с вашей стороны "сколько прибыли было получено от заказов не по стандартным тарифам в целом по сравнению с заказами со стандартными тарифами".
p.s. да и слово какое-то дурное "периодический реквизит".пмсм попахивает легким элементом шизы.
...
Рейтинг: 0 / 0
29.03.2007, 09:43
    #34423515
ModelR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
По бизнесу верно, но вопрос
авторНо вот как это добро привязывать к таблице заказов - есть две идеи.
1. ссылаться на соответствующий id
2. привязывать тариф по дате оплата заказа остается, только смысл добра меняется. ИМХО строго по дате, хоть это и сложнее в запросах.
...
Рейтинг: 0 / 0
29.03.2007, 09:57
    #34423564
Menahem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
Maker
Да, в Вашем случае я бы сделал привязку по дате.
В 1С периодические реквизиты хранятся не так, как Вы предлагаете: они хранятся в таблице констант, с указанием для каждого периодического реквизита значения на дату изменения оного. Но никакой привязки там нет (в смысле объединения etc.), а значение каждый раз выбирается по ИД реквизита и дате запросом. Причём операция сия на этой таблице очень небыстра как методами 1С, так и прямыми SQL-запросами.
...
Рейтинг: 0 / 0
29.03.2007, 10:02
    #34423572
Menahem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
Shtock...
p.s. да и слово какое-то дурное "периодический реквизит".пмсм попахивает легким элементом шизы.
Вы знаете, до знакомства с 1С я всегда воспринимал слово "периодический" в чисто математическом смысле. 1С мои представления перевернула, так что Вы, наверное, недалеки от истины. :)
...
Рейтинг: 0 / 0
29.03.2007, 11:48
    #34424040
Maker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
ShtockКстати,хранить фиксированную стоимость очень красиво,потому как хотя бы при селектах не поползете в другую таблицу.во-вторых когда клиент попросит скидку-будете таблицу тарифа править?а если 20 клиентов со своей скидкой,30,40?

как вариант завести в поле заказа % или величину скидки от основного тарифа - и проблема решена! :). Просто хранить одни и те же данные в таблице ИМХО избыточность большая.
...
Рейтинг: 0 / 0
29.03.2007, 12:00
    #34424099
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
Maker
как вариант завести в поле заказа % или величину скидки от основного тарифа - и проблема решена! :). Просто хранить одни и те же данные в таблице ИМХО избыточность большая.

Скидки бывают не только в процентах, но и абсолютных цифрах. Типа, владелец говорит:
- мы Вам тысченку скинем.

--------------
Избыточности нет. В Вашем случае вы имеете два поля - одно с идентификатором тарифа, другое - со скидкой. Вот это ужу и есть настоящая избыточность.

Я делал так. Есть действующая на текщий момент цена. Оператор получает ее по умолчанию. Далее он вводит или не вводит скидку. В заказе хранится фиксированая для данной позиции и данноного потребителя цена.
...
Рейтинг: 0 / 0
29.03.2007, 12:20
    #34424214
Maker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
Cat2
Я делал так. Есть действующая на текщий момент цена. Оператор получает ее по умолчанию. Далее он вводит или не вводит скидку. В заказе хранится фиксированая для данной позиции и данноного потребителя цена.

хороший подход, но а если скидок нет и быть не может (утверждённые тарифы)?
всё таки пока думаю привязка по дате - самое то...
...
Рейтинг: 0 / 0
29.03.2007, 12:40
    #34424316
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
To Maker:пока нет и быть не может.потом появятся. или на данной работе отработаете эту штуку а на следующую уже с patern придете. "Я делал так. Есть действующая на текщий момент цена. Оператор получает ее по умолчанию. Далее он вводит или не вводит скидку. В заказе хранится фиксированая для данной позиции и данноного потребителя цена." - правильно.у нас тоже были тарифы и прочее.и ничего не могло меняться.начали торговать - все поменялось. предметная область "ценные бумаги".
...
Рейтинг: 0 / 0
29.03.2007, 13:17
    #34424483
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодический реквизит (как в 1С)
Maker
хороший подход, но а если скидок нет и быть не может (утверждённые тарифы)?
всё таки пока думаю привязка по дате - самое то...
И такое тоже делал. Оплата электроэнегрии населением. С кучей льгот, которые действуют от даты до даты, с изменением условий расчета всего, что только можно изменить задним числом. Выяснялось, что этот, оказывается. имеет льготы с такого-то числа, а тот, на самом деле льгот не имеет. Этот, оказывается, должен иметь такой тариф, а тот другой.
Кошмарная база получилась.
В ней мне действительно пришлось применять привязку к датам, вернее к диапазоном действия тарифов, льгот, социальных норм и прочих изврашенных придумок наших законодателей.

А еще надо и нечто сводное выдавать. Типа, как в деревне ДДД обстоят дела с задолженностями, сколько они должны заплатить и сколько заплатили.
Впрочем, любой, кто сталкивался с комунальными платежами или другими биллинговыми системами таких страшилок тысячу расскажет. И покажет жуткие запросы или целые хранимые процедуры жутких запросов.
============
После некоторого размышления я пошел на денормализацию. Создал таблицу, где хранятся конкретные взаиморасчеты, с уже расчитанными тарифами, льготами, социальными нормами и прочей лабудой. Сводная отчетность резко упростилась и стала выдаваться за приемлемое время.

Но это, на мой взгляд, предельный случай. Когда правила игры меняются походу, когда по решению суда нужно изменить данные за последние 10 лет.

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


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