Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / связка PK + UK / 25 сообщений из 140, страница 1 из 6
11.04.2013, 21:07
    #38222696
Павел Евгеньевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
здравствуй, уважаемое сообщество. Проектирую первую свою базу данных, читаю много разных книжек вдоль и поперек, но они не дают ответы на практические вопросы, а может я их не вижу). В каждой таблице я использую суррогатный PK и уникальный UK, например PK - это ID записи в таблице, этот столбец участвует в в ссылочной целостности, а UK - это уникальный номер документа (в ссылочной целостности не участвует). И так в каждой таблице, ну пока что кроме развязок M:M. Правильно ли я поступаю, применяя везде связку PK+UK, или у меня паранойя?
...
Рейтинг: 0 / 0
11.04.2013, 21:28
    #38222706
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел Евгеньевич,

PK вам в руки для связей, Unique (Index | Constraint) - для поддержания уникальности
...
Рейтинг: 0 / 0
11.04.2013, 21:30
    #38222707
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел ЕвгеньевичUK - это уникальный номер документаКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK.
...
Рейтинг: 0 / 0
11.04.2013, 21:37
    #38222713
Павел Евгеньевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
spПавел Евгеньевич,

PK вам в руки для связей, Unique (Index | Constraint) - для поддержания уникальности
Спасибо, а что лучше Unique index или unique constraint? (при каких условиях)
...
Рейтинг: 0 / 0
11.04.2013, 21:40
    #38222714
Павел Евгеньевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Да, это я понимаю. Тогда стоит ли вводить в таблицу развязок суррогатный PK?
...
Рейтинг: 0 / 0
11.04.2013, 22:59
    #38222763
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел ЕвгеньевичmiksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Да, это я понимаю. Тогда стоит ли вводить в таблицу развязок суррогатный PK?В таблицах-связях я обычно делаю PK на оба поля сразу. Насколько это применимо к вашим таблицам - зависит от предметной области, иногда бывает нужно хранить несколько одинаковых связей.
...
Рейтинг: 0 / 0
11.04.2013, 23:00
    #38222766
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел Евгеньевич Спасибо, а что лучше Unique index или unique constraint? (при каких условиях)Почти без разницы. Разница только концептуальная: unique constraint это логическое ограничение на таблицу, реализуемое физическим Unique index. Когда в будущем будут другие средства реализации логического ограничения unique constraint, разница появится.
Павел Евгеньевич Тогда стоит ли вводить в таблицу развязок суррогатный PK? Не обязательно, можно обойтись составным РК. Но если на нее будут ссылки, тогда одностолбцовый РК эффективнее.
...
Рейтинг: 0 / 0
12.04.2013, 08:22
    #38222903
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными.
Ключ не может быть не уникальным по своему определению. Не важно какой. Если не уникальный - значит вообще не ключ. Потому показать ключ можно было что кто-то что-то не так проанализировал в предметной области, но никак не то что "естественные ключи только кажутся уникальными". Такая теорема, вроде, до сих пор не известна.
...
Рейтинг: 0 / 0
12.04.2013, 09:45
    #38222971
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
vadiminfoКлюч не может быть не уникальным по своему определению.Процитируйте, пожалуйста, это определение или дайте на него ссылку.
...
Рейтинг: 0 / 0
12.04.2013, 10:38
    #38223050
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел Евгеньевич. В каждой таблице я использую суррогатный PK и уникальный UK, например PK - это ID записи в таблице, этот столбец участвует в в ссылочной целостности, а UK - это уникальный номер документа (в ссылочной целостности не участвует). И так в каждой таблице, ну пока что кроме развязок M:M. Правильно ли я поступаю, применяя везде связку PK+UK,


Очень правильно. Мог бы расписать, почему, но пишу с мобильного, писать тяжко.
...
Рейтинг: 0 / 0
12.04.2013, 10:41
    #38223057
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел ЕвгеньевичspПавел Евгеньевич,

PK вам в руки для связей, Unique (Index | Constraint) - для поддержания уникальности
Спасибо, а что лучше Unique index или unique constraint? (при каких условиях)

Одно и то же, всё равно.
Разные только цели, так что уж если ты хочешь обеспечить уникальность, делай constraint.
...
Рейтинг: 0 / 0
12.04.2013, 10:44
    #38223066
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftvadiminfoКлюч не может быть не уникальным по своему определению.Процитируйте, пожалуйста, это определение или дайте на него ссылку.

Я бы тоже так думал, но только масса людей использует термин "ключь" как синоним термина "индекс".
...
Рейтинг: 0 / 0
12.04.2013, 11:19
    #38223132
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftПавел ЕвгеньевичUK - это уникальный номер документаКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK.

Но тут видимо как раз всё правильно, потому что видимо это внутренний номер документа, генерируемый в этом приложении/БД.
В констрейнт на внешний номер документа нужно включать как минимум ещё и источник документа.
...
Рейтинг: 0 / 0
12.04.2013, 11:20
    #38223138
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Павел ЕвгеньевичmiksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Да, это я понимаю. Тогда стоит ли вводить в таблицу развязок суррогатный PK?

Это стоит делать только если
связь является самостоятельнос сущностью

на связь будут ссылки из других таблиц.
...
Рейтинг: 0 / 0
12.04.2013, 11:23
    #38223147
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
MasterZivНо тут видимо как раз всё правильно, потому что видимо это внутренний номер документа, генерируемый в этом приложении/БД.Опять же до поры-до времени. Если удаление документа производится/будет производиться изменением его статуса, то требование уникальности будет относится только к "живым" документам. А это уже простым UK не делается.
...
Рейтинг: 0 / 0
12.04.2013, 13:24
    #38223385
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftvadiminfoКлюч не может быть не уникальным по своему определению.Процитируйте, пожалуйста, это определение или дайте на него ссылку.
ключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости).

Уникальность означает, что не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны).

Ну вообще у Мейера в теории реляционных БД можете посмотреть про ключи. Имеет значение что все атрибут находятся в ФЗ от ключа благодаря исключительно из-за уникальности. Потэтому его объявление и позволяет навязывать ФЗ. Поэтому он и имеет значение.
...
Рейтинг: 0 / 0
12.04.2013, 14:34
    #38223511
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
vadiminfo,

Хорошо, для более полного соответствия теории перефразирую так:

Как уже много раз показывалось, естественные ключи только кажутся ключами. Рано или поздно придется отказаться от этого ключа.
...
Рейтинг: 0 / 0
12.04.2013, 14:38
    #38223524
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
кроме сферической рм в вакууме бывают отношения например:

договор с юрлицом и датой -> контакт юрлица, с периодом, включающим дату договора
...
Рейтинг: 0 / 0
12.04.2013, 14:38
    #38223526
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
MasterZivмасса людей использует термин "ключь" как синоним термина "индекс".В синтаксисе MySQL это даже документированная фича.
...
Рейтинг: 0 / 0
12.04.2013, 14:41
    #38223530
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftvadiminfo,

Хорошо, для более полного соответствия теории перефразирую так:

Как уже много раз показывалось, естественные ключи только кажутся ключами. Рано или поздно придется отказаться от этого ключа.
Существующий UC позволяет легко обнаружить тот самый момент когда придется менять архитектуру. И это хорошо.
Гораздо хуже когда никаких констрейнтов нету, а пользователи и програмисты живут в уверенности что там все уникально.
И вот в тот прекрасный момент когда вдруг обнаруживается что это не так - последствия бывают гораздо хуже чем если бы мы просто своевременно узнали о проблеме.
...
Рейтинг: 0 / 0
12.04.2013, 14:58
    #38223570
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftvadiminfo,

Хорошо, для более полного соответствия теории перефразирую так:

Как уже много раз показывалось, естественные ключи только кажутся ключами. Рано или поздно придется отказаться от этого ключа.
Лучше. Но чтобы более полно соотвествовать терории еще нужно, скорее всего, уточнить кому собственно что-то там казалось. Не всеже столь беспечны, чтобы полагаться довольствоваться только кажущимся.
Возможно, и не все рано или поздно отказываются. А тут звучит как некоторое всеобщее утверждение. Типа закона некоего.
...
Рейтинг: 0 / 0
12.04.2013, 15:14
    #38223603
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
vadiminfoВозможно, и не все рано или поздно отказываются.Не отказываются сейчас - отказываются позже. Просто это "позже" может наступить не скоро :)
Это, конечно, не закон. Это просто другая формулировка фразы "жизнь богаче, чем нам кажется" или "жизнь богаче воображения".

Масса обсуждений было на тему "естественные первичные ключи против искусственных". Насколько я помню, гарантированно уникального естественного ключа так и не нашлось. Т.е. его нарушение - это только вопрос времени.
...
Рейтинг: 0 / 0
12.04.2013, 15:29
    #38223636
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
Э-э-э насчет естественного и суррогатного ключа.
Есть такое понятие табельный номер.
В рамках предприятия (Отдел Кадров) он уникальный.
А вот в по истории один и тот же табельный номер может быть у разных людей и наоборот у одного и того же человека в разные периоды времени могут быть разные табельные номера.

Вот тут и помогает суррогатный ключ. :-)
...
Рейтинг: 0 / 0
12.04.2013, 16:01
    #38223706
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftПросто это "позже" может наступить не скоро :).
А "не скоро" может стремиться к бесконечности или снятию системы с эксплуатации.
А может оказаться, что в дальнейшем ("позже") в пользу выбора естественных первичных ключей будет больше оснований: внедряется все больше и больше идентификатров для электронных сущностей, комп технологии могут изменяться, что может снизить.
Так что что там позже настпит еще не известно.
...
Рейтинг: 0 / 0
12.04.2013, 16:12
    #38223725
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связка PK + UK
miksoftMasterZivмасса людей использует термин "ключь" как синоним термина "индекс".В синтаксисе MySQL это даже документированная фича.

Я на неё в частности и намекал.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / связка PK + UK / 25 сообщений из 140, страница 1 из 6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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