Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проверить уникальность вводимого в ключевое поле значения?


Страницы:   1 2 3 4

NewSer ©   (2008-03-16 11:25:00) 

Как организовать проверку - не вводит ли пользователь в поле с ключевым значением уже существующее (повторно)? (ADO)


Anatoly Podgoretsky   (2008-03-18 23:54:00) [21]

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


Leonid Troyanovsky   (2008-03-18 21:50:00) [22]


> ANB   (18.03.08 16:40) [39]

> Человека в задаче нельзя идентифицировать точно ни по одному
> из естественных аттрибутов.

Человек идентифицируется с точностью до однояйцевых близнецов.
Ну, или клонов. Остальное - субъективо.

--
Regards, LVT.


Игорь Шевченко   (2008-03-18 16:58:00) [23]

Johnmen ©   (18.03.08 16:49) [41]

Вот про плюсы я как-то не увидел. Собственно, со статьей я знаком давно, и ее последователями тоже.
Но вот незадача - есть не менее авторитетный Joe Celko, который считает с точностью до наоборот, к сожалению, не могу найти в сети главу из его книжки, где он пишет про ID-иотов...


Johnmen   (2008-03-18 16:49:00) [24]


> Игорь Шевченко ©   (18.03.08 16:44) [40]
> Ну не понимаю я догматиков.

Насколько помню, там было объективно - и плюсы и минусы и того и другого.
Т.е. в конечном счёте - про овощ :))


Игорь Шевченко   (2008-03-18 16:44:00) [25]

ANB   (18.03.08 16:40) [39]


> Человека в задаче нельзя идентифицировать точно ни по одному
> из естественных аттрибутов. Только по искусственному ИД


Можно. Например по номеру паспорта, страхового свидетельства, ИНН и много другого :)

Johnmen ©   (18.03.08 16:07) [38]


>  В статье на ibase.ru всё сказано...


"В общем-то, выводы очевидны – введение СК позволяет получить лучше управляемую, более компактную и быстродействующую БД."

Всякой задаче своя база данных. Еще раз. Ну не понимаю я догматиков.


ANB   (2008-03-18 16:40:00) [26]


> Если человек в задаче идентфицируется по номеру паспорта

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


Johnmen   (2008-03-18 16:07:00) [27]


> Игорь Шевченко ©   (18.03.08 15:59) [37]

Ну если о вреде, то об одном :))
Хотя я вред и не обсуждал..

Вспоминается перманентно возникающая дискуссия "СК vs НК". А чего ей возникать? В статье на ibase.ru всё сказано...


Игорь Шевченко   (2008-03-18 15:59:00) [28]

Johnmen ©   (18.03.08 15:50) [36]


> Что именно?
> У меня ощущение, что мы говорим несколько о разном.


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


Johnmen   (2008-03-18 15:50:00) [29]


> Игорь Шевченко ©   (18.03.08 15:34) [35]
> все зависит от задачи.

Что именно?
У меня ощущение, что мы говорим несколько о разном.


Игорь Шевченко   (2008-03-18 15:34:00) [30]

Johnmen ©   (18.03.08 15:12) [34]

Все зависит от задачи.


> Тем не менее, я настаиваю, что, например, № паспорта или
> номер авиакомпании ни в коем разе не м.б. суррогатным ключем.
>
> Т.к. паспорт м.б. безвозвратно утрачен, а человек ещё жив
> :)


> А в новой классификации для авиакомпаний м.б. новая система
> идентификации.


Может быть. Но видишь ли, может быть задача обрабатывать старые данные по старой идентификации и при простой смене кода при неменяемом ID эта задача благополучно идет лесом.

Впрочем, зачем далеко ходить - во времена деноминации в блаженной памяти 1998 году вполне уживалось два рубля, один с кодом RUR, другой с кодом RUB, хотя сам рубль как был денежной единицей Российской федерации, так ей и остался.
А нолики, сам понимаешь, у каждого рубля были свои.

Насчет паспорта - опять же, все зависит от задачи. Если человек в задаче идентфицируется по номеру паспорта - тогда поменять номер на новый не составит проблем. А если требуется идентифицировать и по старому и по новому, то ID тебя не спасет.


Johnmen   (2008-03-18 15:12:00) [31]


> Игорь Шевченко ©   (18.03.08 14:45) [32]

Тем не менее, я настаиваю, что, например, № паспорта или номер авиакомпании ни в коем разе не м.б. суррогатным ключем.
Т.к. паспорт м.б. безвозвратно утрачен, а человек ещё жив :)
(здесь следует говорить просто о совпадении СК с атрибутом, и только о так)
А в новой классификации для авиакомпаний м.б. новая система идентификации.
(сменился способ генерации, а однозначность гарантированна в рамках одного)


ANB   (2008-03-18 15:10:00) [32]


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

Очень мало сущностей, код которых уникален в пределах страны (типа ИНН) и их никак не поиспользовать в качестве первичного ключа. Уже нарывался.
Единственно, где это может быть оправдано - общероссийские справочники типа хотя бы КЛАДРа. Вот как раз в случае с КЛАДР использование для самого справочника своего ИД (сгенеренного) - вешалка для разработчика в процессе эксплуатации. Я как то работал с системой с таким КЛАДР. Импорт нового - был задачей нетривиальной.
Короче - согласен с ИШ - каждому овощу свое место в огороде.


Игорь Шевченко   (2008-03-18 14:45:00) [33]


> По отношению к разрабатываемой конкретной системе такие
> ключи нельзя назвать генерируемые, так как они генерируются
> вне этой системы


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

Johnmen ©   (18.03.08 14:18) [30]


> Ключ либо натуральный, либо суррогатный. Без полутонов и
> оттенков :)


Шанкр либо твердый, либо мягкий (с)

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


Да, ты прав, все от задачи зависит. А на фразу "да как обычно - генерировать" у меня вызывает безусловный рефлекс, как красная тряпка у быка.


Sergey13   (2008-03-18 14:32:00) [34]

> [29] Игорь Шевченко ©   (18.03.08 14:12)
> Отнюдь не естественные, а тоже неким образом сгенерированы.

Все в этом мире кем то сгенерировано. 8-)
По отношению к разрабатываемой конкретной системе такие ключи нельзя назвать генерируемые, так как они генерируются вне этой системы. А там хоть Делфийский Оракул выдумывает значение, хоть попугай выдергивает из кучи.


Johnmen   (2008-03-18 14:18:00) [35]


> Игорь Шевченко ©   (18.03.08 14:12) [29]

А Sergey13 © тоже неправ.
Ключ либо натуральный, либо суррогатный. Без полутонов и оттенков :)
Суррогатный ли ключ определяется не способом генерации, а предназначением и наличием предметной сущности.


Игорь Шевченко   (2008-03-18 14:12:00) [36]

Johnmen ©   (18.03.08 13:48) [28]


> Кстати, нет, не суррогаты.


А что ? :)

Sergey13 ©   (18.03.08 13:42) [27]


> Ну так все перечисленные тобой реквизиты - это естественные
> ключи, которые конечно могут быть и сурогатами. Никто с
> этим и не спорит.


Отнюдь не естественные, а тоже неким образом сгенерированы. Интересно, что естественного в цифровом коде авиакомпании "Аэрофлот" равном 555 ?

Просто так условились...


Johnmen   (2008-03-18 13:48:00) [37]


> Игорь Шевченко ©   (18.03.08 13:05) [26]
> Кстати, номер паспорта, ИНН и прочее - самые что ни на есть суррогаты, однако ж вводят.

Кстати, нет, не суррогаты.


Sergey13   (2008-03-18 13:42:00) [38]

> [26] Игорь Шевченко ©   (18.03.08 13:05)

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


Игорь Шевченко   (2008-03-18 13:05:00) [39]

Sergey13 ©   (18.03.08 12:56) [25]


> Ты предлагаешь пользователю вручную вводить сурогаты?
> <Цитата>
> » удаление...


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


Sergey13   (2008-03-18 12:56:00) [40]

> [24] Игорь Шевченко ©   (18.03.08 12:20)
> А как же то, с чего началось:

Началось все с

> [1] Sergey13 ©   (17.03.08 08:37)
> Ввод пользователем ключевых полей желательно исключить совсем, если конечно это не естественный ключ.

Ты предлагаешь пользователю вручную вводить сурогаты?


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо