|
|
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане! Требуется ваша подсказка, как оптимально хранить в БД информацию о тарифах грузоперевозок из города А в город Б. Сейчас пользуюсь тарифами из округа в округ (в России их 15, поэтому прайс простой). Планируется постепенно детализировать прайс, вводя регионы России (их 90) и города (городов около 6 000). Известно, что цена из А в Б отличается от цены из Б в А. В программе собираюсь для пользователя реализовать следующую схему: Пользователь выбирает город загрузки и город разгрузки Программа смотрит есть ли в базе информация о стоимости на уровне городов. Если есть, выдает стоимость. Если нет, программа смотрит есть ли в базе информация о стоимости на регионов. Если есть, выдает стоимость и говорит, что точность на уровне регионов. Если нет, программа смотрит есть ли в базе информация о стоимости на округов, выдает стоимость и говорит, что точность на уровне округов (самая грубая оценка). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 13:49 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
Ну и какая проблема? Делаете иерархию "округа-регионы-города", и таблицу тарифов (ЭлементИерархии1, ЭлементИерархии2, тип, цена). Если в иерархии будет небольшое фиксированное число уровней (по Вашему описанию их 3) - можно сразу в городах хранить ссылку и на регион и на округ (это, конечно, ФЗ, но запрос на поиск подходящего тарифа будет совсем простым). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 14:47 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинНу и какая проблема? Делаете иерархию "округа-регионы-города", и таблицу тарифов (ЭлементИерархии1, ЭлементИерархии2, тип, цена). Если в иерархии будет небольшое фиксированное число уровней (по Вашему описанию их 3) - можно сразу в городах хранить ссылку и на регион и на округ (это, конечно, ФЗ, но запрос на поиск подходящего тарифа будет совсем простым). А хранить базу в виде таблице как приведено выше имеет смысл? Т.е. количество полей будет 1 + количество городов (6000 шт) + количество областей (90 шт) + количество округов (15). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 15:50 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcety, Нет, конечно. 6000 полей потянет мало какая СУБД, но даже если предположить что потянет - смысла в этом никакого, искать в такой таблице нужный тариф сложнее . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 16:03 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyА хранить базу в виде таблице как приведено выше имеет смысл? Т.е. количество полей будет 1 + количество городов (6000 шт) + количество областей (90 шт) + количество округов (15). У вас, грубо говоря, "направленный граф". Т.о. структура для данного графа может быть например такой: Вершина1 (ссылка) Вершина2 (ссылка) Вес (какое-то числовое значение) А нагуглить решения "нахождения пути" для направленного графа достаточно легко. Представленный мной способ хранения "направленного графа" не единственный. Существуют и другие способы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 07:45 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyТребуется ваша подсказка, как оптимально хранить в БД информацию о тарифах грузоперевозок из города А в город Б. Перечитала 2 раза и не поняла тип перевозок --железная дорога --авиа --автомобилем --смешанная есть границы регионов/областей, например нужен маршрут Шуя-Дзержинск авто/железная дорога --вар1- шуя-ковров-вязники-дзержинск --вар2- шуя-(иваново)-(владимир)-(нижний новгород)-дзержинск вар1 короче да и дороги приличные но предположим, что дзержинск не принимает контейнеры 10т, только в областных городах придется идти смешанным путем(вар2) аналогично маршрут шуя-биробиджан ---далеко, без самолета или поезда дальнего следования не обойтись и маршрут разобъется на куски 1-шуя-москва поезд или авто 2-москва-хабаровск --самолет или грузовой состав 3- хабаровск-биробиджан --чем то местным ... так что стоимость зависит от маршрута и срочности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 08:53 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
ПЕНСИОНЕРКАforcetyТребуется ваша подсказка, как оптимально хранить в БД информацию о тарифах грузоперевозок из города А в город Б. Перечитала 2 раза и не поняла тип перевозок --железная дорога --авиа --автомобилем --смешанная есть границы регионов/областей, например нужен маршрут Шуя-Дзержинск авто/железная дорога --вар1- шуя-ковров-вязники-дзержинск --вар2- шуя-(иваново)-(владимир)-(нижний новгород)-дзержинск вар1 короче да и дороги приличные но предположим, что дзержинск не принимает контейнеры 10т, только в областных городах придется идти смешанным путем(вар2) аналогично маршрут шуя-биробиджан ---далеко, без самолета или поезда дальнего следования не обойтись и маршрут разобъется на куски 1-шуя-москва поезд или авто 2-москва-хабаровск --самолет или грузовой состав 3- хабаровск-биробиджан --чем то местным ... так что стоимость зависит от маршрута и срочности Грузоперевозки идут только автотранспортом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 11:05 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
На данный момент вижу такую картину: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 11:43 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyГрузоперевозки идут только автотранспортом тогда надо учитывать время года --зимой/весной это может быть один маршрут, учитывающий качество дорог --летом/осенью --другой(дороги подсохли) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 12:30 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcety, и добавьте --область-округ --округ-область --город -область/округ --область/округ-город ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 12:34 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcety, Это курсовая или боевая задача? Просто в боевой такого по определению быть не может. Стоимость грузоперевозки зависит от массы груза, типа груза, цены груза, расстояния, климатических условий. Регионы, города и пр. - это дополнительные характеристики, которые на цену грузоперевозки никак не влияют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 12:40 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
Злой Бобрforcety, Это курсовая или боевая задача? Просто в боевой такого по определению быть не может. Стоимость грузоперевозки зависит от массы груза, типа груза, цены груза, расстояния, климатических условий. Регионы, города и пр. - это дополнительные характеристики, которые на цену грузоперевозки никак не влияют. Это реальная задача. Это таблица будет как эталонная (основа), н-р, стоимость за 10 тонн. Цена = рубль за километр * километраж между точками. С нее и начинаю. А учет других параметров входных (типа груза, цены груза, климат.условия,...) сделаю позже. Нужно продумать как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 13:51 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyЭто реальная задача тогда вполне может делаться маршрутизация между опорными городами шуя-владимир-хабаровск-городок хабаровского края +для смежных городов(хотя и разных областей) шуя-ковров-вязники шуя-владимир-суздаль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 14:19 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyИзвестно, что цена из А в Б отличается от цены из Б в А. чем отличается дорога авторшуя ковров-вязники от вязники-ковров-шуя на север(из вязников в мурманск) можно ехать --через москву --или через иваново-ленинград --или иваново-чудово-волховстрой-петрозаводск ------------- ведь для одних исходной точкой является шуя, а для других -вязники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 14:25 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyЭто реальная задача . Тогда учите "матчасть", т.к. ваш подход изначально не верен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 15:29 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcety, 3 запроса необязательны, можно делать поиск одним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 15:35 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcety, За такой дизайн, как ты намекаешь во фразе "столбцы так и назову" надо увольнять проектировщика БД. Т.е. тебя, в данном случае :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 16:43 |
|
||
|
Хитрая таблица тарифов
|
|||
|---|---|---|---|
|
#18+
forcetyКот МатроскинНу и какая проблема? Делаете иерархию "округа-регионы-города", и таблицу тарифов (ЭлементИерархии1, ЭлементИерархии2, тип, цена). Если в иерархии будет небольшое фиксированное число уровней (по Вашему описанию их 3) - можно сразу в городах хранить ссылку и на регион и на округ (это, конечно, ФЗ, но запрос на поиск подходящего тарифа будет совсем простым). А хранить базу в виде таблице как приведено выше имеет смысл? Т.е. количество полей будет 1 + количество городов (6000 шт) + количество областей (90 шт) + количество округов (15). Нет, не имеет. Структура таблиц вообще с алгоритмом поиска никак не связана. Что касается "оптимально хранить в БД информацию", то хранить её нужно не оптимально, а правильно. У тебя пока неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 17:08 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39194589&tid=1540374]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 161ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...