|
|
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
здравствуй, уважаемое сообщество. Проектирую первую свою базу данных, читаю много разных книжек вдоль и поперек, но они не дают ответы на практические вопросы, а может я их не вижу). В каждой таблице я использую суррогатный PK и уникальный UK, например PK - это ID записи в таблице, этот столбец участвует в в ссылочной целостности, а UK - это уникальный номер документа (в ссылочной целостности не участвует). И так в каждой таблице, ну пока что кроме развязок M:M. Правильно ли я поступаю, применяя везде связку PK+UK, или у меня паранойя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 21:07 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел Евгеньевич, PK вам в руки для связей, Unique (Index | Constraint) - для поддержания уникальности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 21:28 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел ЕвгеньевичUK - это уникальный номер документаКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 21:30 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
spПавел Евгеньевич, PK вам в руки для связей, Unique (Index | Constraint) - для поддержания уникальности Спасибо, а что лучше Unique index или unique constraint? (при каких условиях) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 21:37 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Да, это я понимаю. Тогда стоит ли вводить в таблицу развязок суррогатный PK? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 21:40 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел ЕвгеньевичmiksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Да, это я понимаю. Тогда стоит ли вводить в таблицу развязок суррогатный PK?В таблицах-связях я обычно делаю PK на оба поля сразу. Насколько это применимо к вашим таблицам - зависит от предметной области, иногда бывает нужно хранить несколько одинаковых связей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 22:59 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел Евгеньевич Спасибо, а что лучше Unique index или unique constraint? (при каких условиях)Почти без разницы. Разница только концептуальная: unique constraint это логическое ограничение на таблицу, реализуемое физическим Unique index. Когда в будущем будут другие средства реализации логического ограничения unique constraint, разница появится. Павел Евгеньевич Тогда стоит ли вводить в таблицу развязок суррогатный PK? Не обязательно, можно обойтись составным РК. Но если на нее будут ссылки, тогда одностолбцовый РК эффективнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2013, 23:00 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Ключ не может быть не уникальным по своему определению. Не важно какой. Если не уникальный - значит вообще не ключ. Потому показать ключ можно было что кто-то что-то не так проанализировал в предметной области, но никак не то что "естественные ключи только кажутся уникальными". Такая теорема, вроде, до сих пор не известна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 08:22 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
vadiminfoКлюч не может быть не уникальным по своему определению.Процитируйте, пожалуйста, это определение или дайте на него ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 09:45 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел Евгеньевич. В каждой таблице я использую суррогатный PK и уникальный UK, например PK - это ID записи в таблице, этот столбец участвует в в ссылочной целостности, а UK - это уникальный номер документа (в ссылочной целостности не участвует). И так в каждой таблице, ну пока что кроме развязок M:M. Правильно ли я поступаю, применяя везде связку PK+UK, Очень правильно. Мог бы расписать, почему, но пишу с мобильного, писать тяжко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 10:38 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел ЕвгеньевичspПавел Евгеньевич, PK вам в руки для связей, Unique (Index | Constraint) - для поддержания уникальности Спасибо, а что лучше Unique index или unique constraint? (при каких условиях) Одно и то же, всё равно. Разные только цели, так что уж если ты хочешь обеспечить уникальность, делай constraint. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 10:41 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftvadiminfoКлюч не может быть не уникальным по своему определению.Процитируйте, пожалуйста, это определение или дайте на него ссылку. Я бы тоже так думал, но только масса людей использует термин "ключь" как синоним термина "индекс". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 10:44 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftПавел ЕвгеньевичUK - это уникальный номер документаКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Но тут видимо как раз всё правильно, потому что видимо это внутренний номер документа, генерируемый в этом приложении/БД. В констрейнт на внешний номер документа нужно включать как минимум ещё и источник документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:19 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Павел ЕвгеньевичmiksoftКак уже много раз показывалось, естественные ключи только кажутся уникальными. Рано или поздно придется отказаться от этого UK. Да, это я понимаю. Тогда стоит ли вводить в таблицу развязок суррогатный PK? Это стоит делать только если связь является самостоятельнос сущностью на связь будут ссылки из других таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:20 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
MasterZivНо тут видимо как раз всё правильно, потому что видимо это внутренний номер документа, генерируемый в этом приложении/БД.Опять же до поры-до времени. Если удаление документа производится/будет производиться изменением его статуса, то требование уникальности будет относится только к "живым" документам. А это уже простым UK не делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 11:23 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftvadiminfoКлюч не может быть не уникальным по своему определению.Процитируйте, пожалуйста, это определение или дайте на него ссылку. ключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости). Уникальность означает, что не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны). Ну вообще у Мейера в теории реляционных БД можете посмотреть про ключи. Имеет значение что все атрибут находятся в ФЗ от ключа благодаря исключительно из-за уникальности. Потэтому его объявление и позволяет навязывать ФЗ. Поэтому он и имеет значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 13:24 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
vadiminfo, Хорошо, для более полного соответствия теории перефразирую так: Как уже много раз показывалось, естественные ключи только кажутся ключами. Рано или поздно придется отказаться от этого ключа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:34 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
кроме сферической рм в вакууме бывают отношения например: договор с юрлицом и датой -> контакт юрлица, с периодом, включающим дату договора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:38 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
MasterZivмасса людей использует термин "ключь" как синоним термина "индекс".В синтаксисе MySQL это даже документированная фича. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:38 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftvadiminfo, Хорошо, для более полного соответствия теории перефразирую так: Как уже много раз показывалось, естественные ключи только кажутся ключами. Рано или поздно придется отказаться от этого ключа. Существующий UC позволяет легко обнаружить тот самый момент когда придется менять архитектуру. И это хорошо. Гораздо хуже когда никаких констрейнтов нету, а пользователи и програмисты живут в уверенности что там все уникально. И вот в тот прекрасный момент когда вдруг обнаруживается что это не так - последствия бывают гораздо хуже чем если бы мы просто своевременно узнали о проблеме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:41 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftvadiminfo, Хорошо, для более полного соответствия теории перефразирую так: Как уже много раз показывалось, естественные ключи только кажутся ключами. Рано или поздно придется отказаться от этого ключа. Лучше. Но чтобы более полно соотвествовать терории еще нужно, скорее всего, уточнить кому собственно что-то там казалось. Не всеже столь беспечны, чтобы полагаться довольствоваться только кажущимся. Возможно, и не все рано или поздно отказываются. А тут звучит как некоторое всеобщее утверждение. Типа закона некоего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 14:58 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
vadiminfoВозможно, и не все рано или поздно отказываются.Не отказываются сейчас - отказываются позже. Просто это "позже" может наступить не скоро :) Это, конечно, не закон. Это просто другая формулировка фразы "жизнь богаче, чем нам кажется" или "жизнь богаче воображения". Масса обсуждений было на тему "естественные первичные ключи против искусственных". Насколько я помню, гарантированно уникального естественного ключа так и не нашлось. Т.е. его нарушение - это только вопрос времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 15:14 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
Э-э-э насчет естественного и суррогатного ключа. Есть такое понятие табельный номер. В рамках предприятия (Отдел Кадров) он уникальный. А вот в по истории один и тот же табельный номер может быть у разных людей и наоборот у одного и того же человека в разные периоды времени могут быть разные табельные номера. Вот тут и помогает суррогатный ключ. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 15:29 |
|
||
|
связка PK + UK
|
|||
|---|---|---|---|
|
#18+
miksoftПросто это "позже" может наступить не скоро :). А "не скоро" может стремиться к бесконечности или снятию системы с эксплуатации. А может оказаться, что в дальнейшем ("позже") в пользу выбора естественных первичных ключей будет больше оснований: внедряется все больше и больше идентификатров для электронных сущностей, комп технологии могут изменяться, что может снизить. Так что что там позже настпит еще не известно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2013, 16:01 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38223385&tid=1541288]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 388ms |

| 0 / 0 |
