powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Естественный первичный ключ для остановки общественного транспорта
25 сообщений из 82, страница 3 из 4
Естественный первичный ключ для остановки общественного транспорта
    #39752832
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинкак, на Ваш взгляд, тут поможет отсутствие предложенного unique constraint?
Поможет не столько отсутствие constraint-а, сколько проектирование, учитывающее неуникальность этих данных. Начиная хотя бы с вопроса клиенту - "а как вы считаете эти данные, когда на маршруте есть одноимённые остановки? как понимаете, о какой из них речь?"
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753199
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIНе переназовёшь. Судя, например, по Москве.
Ну Москва не показатель. В других местах переназывают.

Помнится в одном городе раньше было четыре остановки "Школьная" (ну почти как в примере со "Школой") и находились они в разных районах, так что маршруты ездили только по одной из них. И всё равно переименовали их так, что в итоге осталась одна остановка "Школьная".

В другом городе была остановка "НИИтяжмаш", построили церковь, при этом НИИ прекратил свою деятельность, остановку переименовали в "Храм Рождества Христова",
была остановка "Кинотеатр Темп", кинотеатр разрушили, остановку называли "Улица Хмелева",
была остановка "Автомагазин", автомагазин закрыли, переименовали в "Переулок Черниговский", а затем, когда руководство медицинского центра пооббивало пороги администрации города, переименовали в "Диагностический центр". Теперь диагностический центр расформирован, может быть и остановку в скором времени переименуют.

Одним словом, постоянно названия остановок изменяют.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753214
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerнаивно думали, что номер маршрута всегда числоВ прошлом году видел в Москве номера маршрута "О". Т.е. просто кружочек. Было ли это буквой "О" или цифрой 0 - не знаю :)
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753260
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftsoftwarerнаивно думали, что номер маршрута всегда числоВ прошлом году видел в Москве номера маршрута "О". Т.е. просто кружочек. Было ли это буквой "О" или цифрой 0 - не знаю :)
Для полноты веселья - мимо меня довольно долго ходил маршрут "028". Существенно отличающийся от 28-го.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753262
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerДля полноты веселья - мимо меня довольно долго ходил маршрут "028". Существенно отличающийся от 28-го.
А, ну и само собой, кучу лет, а может и до сих пор есть, был маршрут "43 красный". В то время как в Сочи, помнится, были маршруты "12 левый" и "12 правый".
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753275
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineKreatorXXIНе переназовёшь. Судя, например, по Москве.
Ну Москва не показатель. В других местах переназывают.

Помнится в одном городе раньше было четыре остановки "Школьная" (ну почти как в примере со "Школой") и находились они в разных районах, так что маршруты ездили только по одной из них. И всё равно переименовали их так, что в итоге осталась одна остановка "Школьная".

В другом городе была остановка "НИИтяжмаш", построили церковь, при этом НИИ прекратил свою деятельность, остановку переименовали в "Храм Рождества Христова",
была остановка "Кинотеатр Темп", кинотеатр разрушили, остановку называли "Улица Хмелева",
была остановка "Автомагазин", автомагазин закрыли, переименовали в "Переулок Черниговский", а затем, когда руководство медицинского центра пооббивало пороги администрации города, переименовали в "Диагностический центр". Теперь диагностический центр расформирован, может быть и остановку в скором времени переименуют.

Одним словом, постоянно названия остановок изменяют.

Москва, как раз показатель. Если в городе сто остановок, то можно и переименовать. А когда сто тысяч, то смысла нет. Одни неудобства.
Как пример. Автобусы 162, 269 идут по ул. Севанская. Остановки так - "Ул. Севанская", потом "Продмаг" (которого типа уже давно нет), потом "Ул. Севанская" (но это уже другая, в километре от той). Грубо говоря (хотя Севанская улица не очень показательна в этом плане), все остановки на пересечении этой улицы с другими называются "Улица Севанская". И это живёт десятилетиями.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753290
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIMr.Fontaineпропущено...

Ну Москва не показатель. В других местах переназывают.

Помнится в одном городе раньше было четыре остановки "Школьная" (ну почти как в примере со "Школой") и находились они в разных районах, так что маршруты ездили только по одной из них. И всё равно переименовали их так, что в итоге осталась одна остановка "Школьная".

В другом городе была остановка "НИИтяжмаш", построили церковь, при этом НИИ прекратил свою деятельность, остановку переименовали в "Храм Рождества Христова",
была остановка "Кинотеатр Темп", кинотеатр разрушили, остановку называли "Улица Хмелева",
была остановка "Автомагазин", автомагазин закрыли, переименовали в "Переулок Черниговский", а затем, когда руководство медицинского центра пооббивало пороги администрации города, переименовали в "Диагностический центр". Теперь диагностический центр расформирован, может быть и остановку в скором времени переименуют.

Одним словом, постоянно названия остановок изменяют.

Москва, как раз показатель. Если в городе сто остановок, то можно и переименовать. А когда сто тысяч, то смысла нет. Одни неудобства.
Смысл ровно такой же, как и при 100 остановках - устранение коллизий.
И даже если город не станет переименовывать географический объект "остановка" - это все равно не повод транспортной компании не наводить порядок с элементом маршрута "остановка".
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39753338
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftВ прошлом году видел в Москве номера маршрута "О". Т.е. просто кружочек. Было ли это буквой "О" или цифрой 0 - не знаю :)

Главное, не пытайтесь на него поделить :)
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39755102
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остановка имеет инвентанрный номер, ибо это объект инфраструктуры, который как правило на балансе у города/обслуживающей организации. Этот балансовый номер и будет естественным ключом для вас. А там, где он придумывается, он будет суррогатным ключом.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39755264
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя делать первичный ключ по названию
хотя бы потому что остановка в одну сторону
от о остановки в другую
могут сильно различаться по географии
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39761719
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
bochkovнельзя делать первичный ключ по названию
хотя бы потому что остановка в одну сторону
от о остановки в другую
могут сильно различаться по географии
Разумеется нельзя. Тут Вы никой Америки не открыли.

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

В принципе любую остановку можно описать уникально.
Например, в моем городе есть две остановки "Улица Марии Мелентьевой"

1. На улице Мелентьевой на нечетной стороне домов, рядом с киоском по продаже цветов и домом номер 7.
2. По Октябрьскому проспекту, рядом с перекрестком с улицей Мелентьевой. По Октябрьскому проспекту, рядом с домом 53.

Как бы это нормализовать? Надеюсь, что все помнят, что в поле таблицы должны быть данные из одного домена!

Казалось бы ту все просто. Реальная улица, реальный дом. Но. У нас тут кучу домов посносили. Киоски перенесли.

Плюс еще есть несколько остановок, которые находятся внутри лесных массивов, где нет никаких домов. Или рядом только один дом.
Север, запад - хорошее предложение,но если двумя остановками "Школа" 20 км, то как оператор сразу определит, которая из них севернее или западнее?
Мне, ошибочно, казалось, что если показывать оператору часть карты, то он четко все определит.

Фиг вам. Я, обремененный высшим образованием, прекрасным чувством ориентации в городах и отличным знанием картографии, запутался на тех местах своего родного города, гдя я не бывал лично
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39761723
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тут главная проблема - максимально урезать "творчество" операторов. Чтобы один не написал "Напротив, через дорогу, памятник", а другой "Рядом цветочный киоск". В идеале все признаки должны выбираться из комбобоксов
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39762196
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIАвтобусы 162, 269 идут по ул. Севанская. Остановки так - "Ул. Севанская", потом "Продмаг" (которого типа уже давно нет), потом "Ул. Севанская" (но это уже другая, в километре от той). Грубо говоря (хотя Севанская улица не очень показательна в этом плане), все остановки на пересечении этой улицы с другими называются "Улица Севанская". И это живёт десятилетиями.
там ещё есть остановка "Ул.Севанская, 12" :-)
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39762198
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Тут главная проблема - максимально урезать "творчество" операторов. Чтобы один не написал "Напротив, через дорогу, памятник", а другой "Рядом цветочный киоск". В идеале все признаки должны выбираться из комбобоксов
Так чем формат:
Код: plaintext
<название><улица расположения><следующая(или предыдущая) остановка по направлению движения>
не нравится?
Три или четыре (если есть желание разбить списка направления "от остановки" и "к остановке") комбобокса и остановка идентифицируется однозначно.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39762254
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineKreatorXXIАвтобусы 162, 269 идут по ул. Севанская. Остановки так - "Ул. Севанская", потом "Продмаг" (которого типа уже давно нет), потом "Ул. Севанская" (но это уже другая, в километре от той). Грубо говоря (хотя Севанская улица не очень показательна в этом плане), все остановки на пересечении этой улицы с другими называются "Улица Севанская". И это живёт десятилетиями.
там ещё есть остановка "Ул.Севанская, 12" :-)
Правильно. Если остановка не на пересечении улиц, подставляются дома в название. Если никакого значимого более-менее уникального объекта рядом нет. Общемосковская практика.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39762260
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineТак чем формат:
Код: plaintext
<название><улица расположения><следующая(или предыдущая) остановка по направлению движения>
не нравится?Например, тем, что понятия следующая/предыдущая остановка существуют только применительно к конкретному маршруту.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39762288
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bochkovнельзя делать первичный ключ по названию
хотя бы потому что остановка в одну сторону
от о остановки в другую
могут сильно различаться по географии

Я еще в 90-е делал прогу для завода. В одной из таблиц сделал уникальным поле с номером авто. В итоге же оказалось что на заводе были два авто с одним и тем же номером - Зил и какая-то легковушка и оба, вполне нормально, стояли на учете! Ну у меня хоть не ключ был - просто пришлось убрать уникальность...
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39765565
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Mr.FontaineТак чем формат:
Код: plaintext
<название><улица расположения><следующая(или предыдущая) остановка по направлению движения>
не нравится?
Наличием кольцевых маршрутов
На "Фиолетовом" для В следующий - Б, на "Красном" для Б следующий - В.
На "Синем" - оба варианта.
Правда проблема c "Синим" решается, если еще указать прямое это или обратное направление
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39765567
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
KreatorXXIвсе остановки на пересечении этой улицы с другими называются "Улица Севанская". И это живёт десятилетиями.
У нас есть ул.Мурманская. Ее пересекают набережная Варкауса, Октябрьский пр., Первомайский проспект. Рядом с этими перекрестками по две остановки. Разумеется, все они называются "ул.Муранская"
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39765679
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2, так направление к/от ближайшей остановки надо указывать не применительно к конкретному маршруту, а относительно правил движения по улицам. О каких маршрутах идёт речь, если мы создаём справочник остановок?

Собственно говоря в начале тобой ставилась задача: "Придумать естественный первичный ключ для остановки общественного транспорта. По этому ключу пользователь должен выбирать остановку из справочника для внесения в маршрут."
То есть сначала создаётся справочник остановок, и в ключе обозначения остановок вообще не должно быть упоминания о маршруте. а уже потом придумываются маршруты.

Для твоего примера справочник остановок будет следующим:
А(Левая улица)(к E)
А(Левая улица)(к Д)
Б(Верхняя улица)(от В)
Б(Верхняя улица)(к В)
В(Верхняя улица)(от Б)
В(Верхняя улица)(к Б)
Г(Правая улица)(к В)
Г(Правая улица)(к Д)
Д(Нижняя улица)(к А)
Д(Нижняя улица)(к Г)
Е(Верхняя улица)

Тогда привязка маршрутов к остановкам создаётся следующим образом:
- для Фиолетового:
А(Левая улица)(к Д)
Д(Нижняя улица)(к Г)
Г(Правая улица)(к В)
В(Верхняя улица)(к Б)
Б(Верхняя улица)(от В)
А(Левая улица)(к Д)

- для Красного:
А(Левая улица)(к Е)
Б(Верхняя улица)(к В)
В(Верхняя улица)(от Б)
Г(Правая улица)(к Д)
Д(Нижняя улица)(к А)
А(Левая улица)(к Б)

- для Синего:
А(Левая улица)(к Д)
Д(Нижняя улица)(к Г)
Г(Правая улица)(к В)
В(Верхняя улица)(к Б)
Б(Верхняя улица)(от В)
Е(Верхняя улица)
Б(Верхняя улица)(к В)
В(Верхняя улица)(от Б)
Г(Правая улица)(к Д)
Д(Нижняя улица)(к А)
А(Левая улица)(к Е)
А(Левая улица)(к Д)
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39765698
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2KreatorXXIвсе остановки на пересечении этой улицы с другими называются "Улица Севанская". И это живёт десятилетиями.
У нас есть ул.Мурманская. Ее пересекают набережная Варкауса, Октябрьский пр., Первомайский проспект. Рядом с этими перекрестками по две остановки. Разумеется, все они называются "ул.Муранская"
Вот посмотри, о чём я говорю на примере реальных остановок Петрозаводска:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Мурманская улица(набережная Варкауса) (к универсальному спортзалу)
Мурманская улица(набережная Варкауса) (к Набережной Варкауса)
Мурманская улица(Октябрьский проспект) (к Площади Маршала Жукова)
Мурманская улица(Октябрьский проспект) (к Краснофлотской улице)
Мурманская улица(Первомайский проспект) (к улице Мелентьевой)
Мурманская улица(Первомайский проспект) (к Московской улице)
кст "Сулажгора" (Сулажгорская улица) (конечная)
кст "Сулажгора" (Сулажгорская улица) (к кафе Ауринко)
улица Ватутина (улица Чапаева) (от Автовокзала)
улица Ватутина (улица Чапаева) (к Автовокзалу)
улица Ватутина (улица Ватутина) (к Телецентру)
улица Ватутина (улица Чапаева) (к улице Пархоменко)
улица Чапаева (улица Чапаева) (к улице Пархоменко)
улица Чапаева (улица Чапаева) (от улицы Пархоменко)
улица Чапаева (Лесной проспект) (к АЗС Лукойл)
улица Маршала Мерецкого (проспект Александра Невского) (к кинотеатру Сампо)
улица Маршала Мерецкого (проспект Александра Невского) (к магазину Автозапчасти)
улица Маршала Мерецкого (улица Маршала Мерецкого) (к улице Гоголя)
улица Маршала Мерецкого (улица Маршала Мерецкого) (от улицы Гоголя)
улица Луначарского(улица Луначарского) (от Пробной улицы)
улица Луначарского(улица Луначарского) (к Пробной улице)
улица Луначарского(улица Луначарского) (к Парку Культуры и Отдыха)
улица Антонова (улица Репникова) (к Сегежской улице)
улица Антонова (улица Репникова) (от Сегежской улице)
улица Антонова (улица Антонова) (от улицы Корабелов)
улица Антонова (улица Антонова) (к улице Корабелов)
остановка без названия (улица Гвардейская) (к улице Гвардейской)
улица Корабелов (улица Корабелов) (к улице Антонова)
улица Корабелов (улица Корабелов) (от улицы Антонова)
улица Корабелов (улица Корабелов???) (от кст "Улица Корабелов")
кст Улица Корабелов (улица Корабелов???) (конечная)
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39765757
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftMr.FontaineТак чем формат:
Код: plaintext
<название><улица расположения><следующая(или предыдущая) остановка по направлению движения>
не нравится?Например, тем, что понятия следующая/предыдущая остановка существуют только применительно к конкретному маршруту.
Ну, извините, сократил обозначение поля и смысл исказился: ближайшая остановка по направлению (или против направления) движения (не обязательно прямолинейному) транспортных средств (то есть не только общественного транспорта) принятого правилами дорожного движения государства
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39766089
Hawkmoon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Цель - отслеживание положения автобусов на действующих маршрутах.
Суперцель - заработать денег за написание программы.

Ловите наркомана конкурента Яндекса!
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39766194
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Mr.FontaineДля твоего примера справочник остановок будет следующим:
А(Левая улица)(к E)
А(Левая улица)(к Д)
Б(Верхняя улица)(от В)
Б(Верхняя улица)(к В)
В(Верхняя улица)(от Б)
В(Верхняя улица)(к Б)
Г(Правая улица)(к В)
Г(Правая улица)(к Д)
Д(Нижняя улица)(к А)
Д(Нижняя улица)(к Г)
Е(Верхняя улица)
А если повернуть схему на 180 градусов?
Ну да ладно, можно север-юг вместо верх-низ.
А если на 90? Тогда запад-восток.
А если это будут не прямоугольники, а какие-то кривые?
На кривых улицах оператор не всегда может определить, что севернее, что восточнее.
...
Рейтинг: 0 / 0
Естественный первичный ключ для остановки общественного транспорта
    #39766197
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
HawkmoonCat2Цель - отслеживание положения автобусов на действующих маршрутах.
Суперцель - заработать денег за написание программы.

Ловите наркомана конкурента Яндекса!
Нет! Я всего-лишь хочу кусочек от этого жирного пирога!
...
Рейтинг: 0 / 0
25 сообщений из 82, страница 3 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Естественный первичный ключ для остановки общественного транспорта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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