|
|
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Eugene Что-то без поллитры не соображу как хранить маршруты в базе данных. Маршрут в общем случае имеет переменное число промежуточных пунктов. Можно конечно закодировать все пункты и представить маршрут как последовательность кодов пунктов, да ещё видно разделённых разделителями. Но потом всю эту бредятину раскодировать замучаешся. В каких структурах интересно хранятся маршруты в базах данных логистических систем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 18:01 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugene Хорошо, давайте думать вместе. 1. Маршрут - это совокупность чего? Упорядоченная или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 19:55 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Маршрут - это получается упорядоченная последовательность кодов. Возможно повторяющихся Получается, что представление маршрутов сродни хранению графа. Конечно удобно представлять в программировании в виде списковых структур. Но может возможно такое N_маршр1 1 N1 N_маршр1 2 N2 ...... N_маршр1 k Nk где Ni - номера узлов (транзитных пунктов), при этом N1=1 - код начального узла, N2 - код следующего и т.п. Если маршруты с циклами ,то в последовательности Ni есть совпадающие элементы. Записей с кодом=N_маршр1 в БД ровно столько каково количество всех пунктов маршрута ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 21:06 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Батенька, принцип построение файловых систем (FAT, NTFS & etc) посмотрите с точки зрения хранения маршрутов ______________________________________________________ Задолбали вихри яростных атак ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 21:44 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
shelsoftБатенька, принцип построение файловых систем (FAT, NTFS & etc) посмотрите с точки зрения хранения маршрутов ______________________________________________________ Задолбали вихри яростных атак ... своими тупыми комментариями. Иди возьми себе отпуск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2008, 22:00 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
чувак, ты задолбал 1) Автор во втором посте практически пришел к тому механизму как "по маршруту" собирается файл в FATе :) Помимо этого механизма есть еще и "i-node" в Unix & etc 2) В руководствах подробно описаны алгоритмы сборки маршрутов их достоинства и недостатки, методики реализации (в т. ч. и "маршруты с циклами") и в принципе они в т. ч. могут быть использованы при выборе структуры базы данных. 3) Оффтоп: "Ви ест майор Вихрь ?" ______________________________________________________ Задолбали вихри яростных атак ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2008, 01:34 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugeneВ каких структурах интересно хранятся маршруты в базах данных логистических систем? Можно в реляционных, можно в объектно-реляционных. Вопрос скорее в том, как их использовать. Возможно, что XML подойдёт. Т.е. ключевая фраза тут "всю эту бредятину раскодировать замучаешся." Делай так, чтобы не мучаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2008, 03:03 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugeneМаршрут - это получается упорядоченная последовательность кодов Что значит кодов? Узловых точек (включая начальную и конечную)? А одна точка может несколько раз в одном маршруте быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2008, 18:01 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Маршрут в общем случае - это неориентированный граф, вершинами которого являются узлы (пункты маршрута), рёбрами - отрезки пути между пунктами. Соответственно имеем 1. Табличка для узлов маршрута (оид, наименование, прочие атрибуты) 2. Табличка для отрезков (оид, ссылка на узел 1, ссылка на узел 2, расстояние, прочие атрибуты) При нахождении маршрута рекурсивно строим дерево для всех возможных вариантов, избегая зацикливания, т.е., необходимо отбрасывать цепочку, которая идёт к корню, выбираем кратчайший. Примерно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2008, 11:51 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Eugene Конечно я понимаю, по хорошему это всё так. Но хотелось бы уточнить: 1)1-е читатели отсылавшие к ОС - нельзя какую-то ссылку по теме разговора, а то ОС - они то большие, написано книг и статей множество и не поймёшь что читать 2)Последний автор в принципе обрисовал модель с т.зр. математики но не сказал как это всё запихивать в несчастную БД. (я уже не говорю как писать программы работы с этими деревьями - это не тема этого сайта). Я в данном разговоре предъявляю к БД с т.зр. маршрутов очень скромные требования: 1)по спец-запросу отобразить перечень пунктов маршрута включая нач, конечный, и промежуточн (при этом маршруты могут быть самопересекающимися и кольцевыми. и 2 вида информации 1.1 характеристики транзитных пунктов 1.2 характеристики рёбер (например время поездки и расстояние от промежут пункта до следующего пункта маршрута. 1.3 Если есть несколько маршрутов ведущих из п.А в п.B надо сконструировать запрос ихи хранимую процедуру, выводящую все эти маршруты с информацией о времени поездки и какой-то другой. \ВОТ и ВСЁ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 16:42 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Мдя... вы даете, ребята. (ну или я чего то не понял) Хранить легко: один-ко-многим. Мастер - маршрут (id, всякая ерунда). подчиненка - id точек и какое-нить поле типа очередность (чтобы по нему order by делать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 18:08 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugeneEugene 1)по спец-запросу отобразить перечень пунктов маршрута включая нач, конечный, и промежуточн (при этом маршруты могут быть самопересекающимися и кольцевыми. и 2 вида информации select по подчиненке where id_marchrut = нужный_нам eugene 1.1 характеристики транзитных пунктов К тому же запросу лепишь join на справочник точек маршрутов eugene 1.2 характеристики рёбер (например время поездки и расстояние от промежут пункта до следующего пункта маршрута. ну тут все зависит от того КАК будут хранится ребра. (напрмиер координаты вершин или длина всех ребер). Но имхо - это лучше в клиента вынести (просто по каждому результату у тебя будет доп запрос) eugene 1.3 Если есть несколько маршрутов ведущих из п.А в п.B надо сконструировать запрос ихи хранимую процедуру, выводящую все эти маршруты с информацией о времени поездки и какой-то другой. \ВОТ и ВСЁ!!! Ухты это и называется ХРАНЕНИЕ В БД? А по моему на SQL Вы пытаетесь навесить проблемы программирования, для которых необходимо использовать нормальные ЯВУ. (кстати, если уж совсем нужно получать эту информацию "из БД" то большинство из них поддерживают функции пользователя - можно попробовать и на них сделать такое - но это не более чем подгонка результата) А та задача, про которую идет разговор в 1.3 это классика из теории графов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 18:18 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Ну вот окончательно и по возможности точно формулирую 2 альтернативы 1)Хранение маршрута каждый узел в своем поле БД Недостатки - число полей БД фиксировано и можно лишь зарезервировать, например 30 или 50. Длину маршрута хранить в 1 поле. SQL запросы будут страшно длинными, неудобно, нужно каждый раз формировать в программном цикле. Достоинства. Каждое поле-узел табл.reis можно связать каскадной связью с табл. узлов Node - т.е автоматич поддержка ссылочной целостности. 2) Хранение маршрута в строковом (или веществ)поле. резервируется мах число узлов например N=100 Каждый узел кодируется тогда 2 символами Недостатки - сложность раскодирования. Писать программу разбивающая строку на пары соседн символов и преобразующие их в NN узлов. Никакой поддержки ссылочной целостности. Единственное достоинство - удобное хранение в длинном текстовом поле (длина 200 и выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 09:28 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugene, ну ты даешь выдать через год такое :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 11:08 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugeneНу вот окончательно и по возможности точно формулирую 2 альтернативы 1)Хранение маршрута каждый узел в своем поле БД Недостатки - число полей БД фиксировано и можно лишь зарезервировать, например 30 или 50. Длину маршрута хранить в 1 поле. SQL запросы будут страшно длинными, неудобно, нужно каждый раз формировать в программном цикле. Достоинства. Каждое поле-узел табл.reis можно связать каскадной связью с табл. узлов Node - т.е автоматич поддержка ссылочной целостности. 2) Хранение маршрута в строковом (или веществ)поле. резервируется мах число узлов например N=100 Каждый узел кодируется тогда 2 символами Недостатки - сложность раскодирования. Писать программу разбивающая строку на пары соседн символов и преобразующие их в NN узлов. Никакой поддержки ссылочной целостности. Единственное достоинство - удобное хранение в длинном текстовом поле (длина 200 и выше)На гугле забанили? Может, и термин "пространственные данные" Вам ничего не говорит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 12:26 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
ViPRosвыдать через год такое :)Не, через пять лет. Ну что, можно сказать, выстраданное решение. sphinx_mvМожет, и термин "пространственные данные" Вам ничего не говорит?ТС не говорил о необходимости хранить маршруты с привязкой к географическим координатам, скорее всего, у него задача проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 13:41 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
PL99ViPRosвыдать через год такое :)Не, через пять лет. Ну что, можно сказать, выстраданное решение. sphinx_mvМожет, и термин "пространственные данные" Вам ничего не говорит?ТС не говорил о необходимости хранить маршруты с привязкой к географическим координатам, скорее всего, у него задача проще.Сугубо к сведению: "географические координаты" представляют собой всего лишь частный случай "пространственных данных". Базовые примитивы "пространственных данных", поддерживаемые производителями "основных" БД в строгом соотвествии с "отраслевыми" стандартами - точки, линии, кривые, полигоны и т.п. (около двух десятков)... Есть и стандарт на текстовое представление этих типов данных - ознакомиться "по быстрому" можно тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 16:22 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
sphinx_mvЕсть и стандарт на текстовое представление этих типов данных - ознакомиться "по быстрому" можно тут Кстати, там же есть список РСУБД, которые имеют поддержку пространственных типов данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 16:24 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
Вот в результате раздумий остановился на схеме http://s40.radikal.ru/i090/1305/64/01965adb414a.jpg Какая-то ссылочная целостность (неполная)поддерживается. Так нельзя вставить в маршрут не вершину графа. Но контроль на существование ребра возложен не на СУБД а на программиста.т.е. ребро между соседними остановками это поля Routes.N между каждыми соседними Routes.nost (nost - порядковы1 N остановки от начала маршрута) Достоинства- минимум полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2013, 12:56 |
|
||
|
Хранение маршрута в базе данных
|
|||
|---|---|---|---|
|
#18+
eugeneНу вот окончательно и по возможности точно формулирую 2 альтернативы 1)Хранение маршрута каждый узел в своем поле БД Недостатки - число полей БД фиксировано и можно лишь зарезервировать, например 30 или 50. Длину маршрута хранить в 1 поле. SQL запросы будут страшно длинными, неудобно, нужно каждый раз формировать в программном цикле. Достоинства. Каждое поле-узел табл.reis можно связать каскадной связью с табл. узлов Node - т.е автоматич поддержка ссылочной целостности. 2) Хранение маршрута в строковом (или веществ)поле. резервируется мах число узлов например N=100 Каждый узел кодируется тогда 2 символами Недостатки - сложность раскодирования. Писать программу разбивающая строку на пары соседн символов и преобразующие их в NN узлов. Никакой поддержки ссылочной целостности. Единственное достоинство - удобное хранение в длинном текстовом поле (длина 200 и выше)Кошмар :) Вы это придумали за пять лет??? вот, в первом приближении: Узлы - это таблица узлов, (id_узла, наименование_узла) Маршруты - таблица маршрутов: (id_маршрута, наименование_маршрута) конкретный маршрут пишется в таблице, общей для всех маршрутов, такой: (id_маршрута, id_узла, id_предыдущего_узла) погуглите про графы, списки, и прочие структуры данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2013, 14:08 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35250713&tid=1541274]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
6ms |
get forum data: |
4ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 340ms |

| 0 / 0 |
