Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.09.26;
Скачать: [xml.tar.bz2];

Вниз

Играй .. невеселая мысля моя..   Найти похожие ветки 

 
Внук ©   (2010-06-29 19:04) [40]

К нашему с ИШ давнему спору. Ключ должен быть суррогатным. И нефиг плодить вероятные проблемы.


 
Юрий Зотов ©   (2010-06-29 19:33) [41]

Справочники:
- областей
- районов
- населенных пунктов
- улиц

Итого ID улицы - суррогат из 4-х полей. Или, как минимум, из двух (если считать, что в одном населенном пункте не может быть 2-х одинаковых улиц). Но из 4-х надежнее.


 
Ega23 ©   (2010-06-29 19:39) [42]


> Справочники:
> - областей
> - районов
> - населенных пунктов
> - улиц


Не всё так просто.


> Внук ©   (29.06.10 19:04) [40]
>
> К нашему с ИШ давнему спору. Ключ должен быть суррогатным.


Ключ может быть суррогатным.
А может и не быть.


 
Alien1769 ©   (2010-06-29 19:48) [43]


> Юрий Зотов ©   (29.06.10 19:33) [41]

Вопрос в догонку. Улица может переименована !!!
Прописан человек на улице Ленина,
ее "перекрестили" на улицу Свободы.
Жильцы купившие квартиру на бывшей улице Ленина получают прописку на улице Свободы. И того две улицы вместо одной, кто как выходил с такой ситуации ??

Я добавил еще одно поле "Стр_Груп" и связал обе улицы..
Но может быть есть более умная идея...


 
Ega23 ©   (2010-06-29 19:53) [44]


> кто как выходил с такой ситуации ??


Ситуации такой не было, но на первый взгляд я бы заводил новую с новым ID, ей дату дуву


 
Ega23 ©   (2010-06-29 19:54) [45]

Чёрт. Предыдущий пост просьбы удалить, случайно нажал не додумав мысль. Мысль додумаю к завтрему.


 
MsGuns ©   (2010-06-29 20:01) [46]

>Ega23 ©   (29.06.10 19:39) [42]
>Не всё так просто.

В данном случае именно ВСЕ

>Ключ может быть суррогатным.
>А может и не быть.

В данном случае ОБЯЗАН


 
MsGuns ©   (2010-06-29 20:03) [47]

По поводу переименования улицы.
Напугали ежа голой ж.. На это есть простой и проверенный способ - второе название. UID при этом ессно не страдает :)


 
Alien1769 ©   (2010-06-29 20:10) [48]


> Напугали ежа голой ж..


В Киеве уже примерно 120 улиц изменили..
А я пугать не думал :)


 
Юрий Зотов ©   (2010-06-29 20:18) [49]

> Alien1769 ©   (29.06.10 19:48) [43]

> И того две улицы вместо одной, кто как выходил с такой ситуации ??

В справочнике улиц заводится еще одно ключевое поле. Это может быть, например, ссылка на запись в том же справочнике (если null, то это первоначальное название улицы, иначе - ссылка на предыдущее название). Или это может быть порядковый номер названия одной и той же улицы (у текущего названия - MAX значение, у первоначального - нуль). Можно еще завести поля "Дата начала действия" и "Дата окончания действия". Таким образом, справочник будет хранить не только текущия названия улиц, но и всю историю их изменений.


 
Юрий Зотов ©   (2010-06-29 20:25) [50]

Вообще, к ключам я подхожу с чисто логической точки зрения. По сути, ведь каждая запись в таблице хранит сведения о некоей сущности. Исходя из бизнес-правил, можно определить, какое количество каких данных позволяют идентифицировать эту сущность однозначно - вот они и есть ключевые поля. Можно (но не обязательно) добавить еще одно поле - так сказать, ID "в чистом виде".


 
Внук ©   (2010-06-29 21:11) [51]

>>Юрий Зотов ©   (29.06.10 20:18) [49]
Во-во. Версионная таблица. Мы такими часто пользуемся в силу специфики заказчика :)


 
Inovet ©   (2010-06-29 21:28) [52]

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

Код объектов первого – пятого уровней состоит из двух частей. Первая часть – собственно код отражает иерархию подчиненности конкретного объекта и выделяет его среди объектов данного уровня, подчиненных одному и тому же старшему объекту. Вторая часть, «признак актуальности», отражает актуальность конкретного наименования данного адресного объекта и выделяет это наименование среди остальных его наименований.

Таким образом, первая часть кода, будем называть ее просто «код», во всех записях, содержащих различные наименования одного и того же объекта, будет одинаковой и с ее помощью устанавливается связь между всеми такими записями. Сказанное относится к случаям простого переименования, когда меняется только название объекта и не меняется его код.

При сложном переименовании (слияние улиц, разбивка улиц с изменением нумерации домов, включение населенного пункта в состав города и т.п.) новые наименования объектов добавляются в БД с новыми кодами. Соответствие старых и новых наименований объектов в этих случаях устанавливается с помощью специального файла (файл Altnames.dbf

Ну и т.д.


 
В школу!   (2010-06-29 21:55) [53]

Внук ©   (29.06.10 19:04) [40]


> Ключ должен быть суррогатным


Кому он должен ?

Не оскудеет земля IDиотами


 
Юрий Зотов ©   (2010-06-29 21:59) [54]


> В школу!   (29.06.10 21:55) [53]

Вы правы. И на своем же примере ярко и убедительно это продемонстрировали.


 
В школу!   (2010-06-29 22:13) [55]

Удалено модератором
Примечание: В школу!


 
MsGuns ©   (2010-06-29 22:34) [56]

>В школу!   (29.06.10 21:55) [53]
>> Ключ должен быть суррогатным
>Кому он должен ?
>Не оскудеет земля IDиотами

Заявление несколько категоричное, но не лишенное смысла.
Суррогаты, действительно, в некоторых случаях могут казаться "лишними", но ПОМЕШАТЬ не смогут никогда. В то время как отказ от них может привести к серьезным проблемам при эксплуатации БД, да и при проектировании тоже.

Поэтому Ваша грубость неуместна.

 Если действительно интересно, то можете найти кучу материала в инете на эту "священную" у базовиков тему. Но что интересно, ни одна из сторон до сих пор так и не смогла привести ни одного 100% агрумента в пользу своей точки зрения :)

Например, я перешел на КС с парадокса, где суррогатов нет (вернее есть их подобие, но это "глюк" 8) ). Сначала мне тоже суррогаты казались изъ..м, но когда въехал в их суть (особенно при "многоэтажных" межтабличных связях или при пробемах каскадных изменений ключей), оценил их и с тех пор использую суррогаты всегда и везде.


 
В школу!   (2010-06-29 23:00) [57]


> В то время как отказ от них может привести к серьезным проблемам
> при эксплуатации БД, да и при проектировании тоже.


а что по этому поводу говорит Кодд ?
http://ru.wikipedia.org/wiki/12_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB_%D0%9A%D0%BE%D0%B4%D0%B4%D0%B0


 
Ega23 ©   (2010-06-29 23:03) [58]


> оценил их и с тех пор использую суррогаты всегда и везде.


Ну скажем так. Процентах в 80 случаев я тоже их использую. Но остальные 20 - нет.


 
MsGuns ©   (2010-06-30 00:33) [59]

И где же Кодд плюется на суррогаты ?
Это во-первых
А во-вторых, правила и существуют на то, чтобы иногда их нарушать. Для пользы дела, конечно :)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2010.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.007 c
15-1277274062
AK-47
2010-06-23 10:21
2010.09.26
Файлы в Windows 7


2-1277647865
New555
2010-06-27 18:11
2010.09.26
Обработка события onMouseMove


8-1205151598
Пётр
2008-03-10 15:19
2010.09.26
Подключение кодеков к TMediaPlayer


2-1278015627
AKE
2010-07-02 00:20
2010.09.26
Как создать несколько Edit полей на форме?


15-1278106391
ford
2010-07-03 01:33
2010.09.26
собственный пункт в контекстном меню проводника





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский