|
|
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. Вот так в спецификации представления таблицы обозначаются внешние и первичные ключи, но вот есть составоной первичный ключ. Как его обозначить? Два раза проставлять PK - странно, будет поле с несколькими PK ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2015, 18:35 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
George-IIIДва раза проставлять PK - странно, будет поле с несколькими PK ничего странного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2015, 19:02 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
А если ещё учесть, что для строкового поля в индекс может быть включено не всё поле, а префикс установленной длины... Не забивай себе голову ОТОБРАЖЕНИЕМ на экране того, что происходит на самом деле. SHOW CREATE TABLE гораздо информативнее - хотя бы потому, что не оставляет пространства для разночтений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2015, 23:37 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
George-III, куда интереснее, как Вы собираетесь обозначать составной FK в таблице, где есть другие FK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 14:43 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
George-III Код: plaintext 1. 2. 3. 4. Вот так в спецификации представления таблицы обозначаются внешние и первичные ключи, но вот есть составоной первичный ключ. Как его обозначить? Два раза проставлять PK - странно, будет поле с несколькими PK ( Поставь два раза PK. Поскольку PK несколько не бывает в принципе ( либо один, либо 0), то все поймут, что это не второй PK, а второе, третье и т.д. поле первого PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 15:23 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
MasterZivвсе поймут, что это не второй PK, а второе, третье и т.д. поле первого PK. Им останется сущая мелочь: угадать правильный порядок полей в ключе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 15:04 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivвсе поймут, что это не второй PK, а второе, третье и т.д. поле первого PK. Им останется сущая мелочь: угадать правильный порядок полей в ключе. зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 09:57 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
eNoseзачем?Дабы оценить (бес)полезность ключа для конкретного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2015, 10:41 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
AkinaeNoseзачем?Дабы оценить (бес)полезность ключа для конкретного запроса.Это ничего, что ключи к запросам не имеют вообще никакого отношения? Ключ имеет отношение сугубо к структуре данных, а именно - для идентификации записи в таблице. Собственно, и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 01:14 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
sphinx_mvЭто ничего, что ключи к запросам не имеют вообще никакого отношения? ... where (t1.f1, t1.f2) = (t2.f1, t2.f2) ... Для праймари кей так нагляднее. Хотя без разницы, конечно, в каком порядке перечислять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 08:28 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
sphinx_mvЭто ничего, что ключи к запросам не имеют вообще никакого отношения? Ключ имеет отношение сугубо к структуре данных, а именно - для идентификации записи в таблице. Собственно, и все. Ух ты, а мужики-то не знают! и мучаются, подбирают комбинации индексов такие, чтобы при минимальном их количестве/объёме получить максимальное ускорение работы запросов... да, любой запрос работает и без ключей, но порою настолько медленно и печально, что наличие индекса является просто жизненной необходимостью. Ключ, когда он первичный - это индекс, обладающий парой дополнительных особенностей. Он гарантированно UNIQUE, и емнип гарантированно NOT NULL. На некоторых СУБД/engine он ещё и обязательно кластерный, но вот это уже не абсолют. На некоторых СУБД подсистема контроля целостности требует, чтобы индекс на стороне "один" внешней связи был первичным - но тоже не абсолют. А когда НЕ первичный, то понятия "ключ" и "индекс" - синонимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 08:55 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Akinasphinx_mvЭто ничего, что ключи к запросам не имеют вообще никакого отношения? Ключ имеет отношение сугубо к структуре данных, а именно - для идентификации записи в таблице. Собственно, и все. Ух ты, а мужики-то не знают! и мучаются, подбирают комбинации индексов такие, чтобы при минимальном их количестве/объёме получить максимальное ускорение работы запросов... да, любой запрос работает и без ключей, но порою настолько медленно и печально, что наличие индекса является просто жизненной необходимостью. Ключ, когда он первичный - это индекс, обладающий парой дополнительных особенностей. Он гарантированно UNIQUE, и емнип гарантированно NOT NULL. На некоторых СУБД/engine он ещё и обязательно кластерный, но вот это уже не абсолют. На некоторых СУБД подсистема контроля целостности требует, чтобы индекс на стороне "один" внешней связи был первичным - но тоже не абсолют. А когда НЕ первичный, то понятия "ключ" и "индекс" - синонимы. Не надо в кучу мешать теорию и реализацию. Ключи это элемент теории реляционной БД. Индексов вообще нет в теории - это способ реализации этой теории. Если теория требует что значения ключа должны быть уникальны, то как это технически реализовать без использования уникального индекса? Наверно можно, но будет жутко тормозить. Весь гимор с комбинированием индексов только потому что ничего лучше не придумали для реализации теории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 09:33 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли теория требует что значения ключа должны быть уникальны, то как это технически реализовать без использования уникального индекса? селект каунт. если ноль - то делать вставку, иначе ошибка. можно в триггере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 09:39 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
eNoseDima TЕсли теория требует что значения ключа должны быть уникальны, то как это технически реализовать без использования уникального индекса? селект каунт. если ноль - то делать вставку, иначе ошибка. можно в триггере. Можно и так. Это эмуляция уникального индекса неуникальным. Можно совсем без индекса, только тормозить будет. Я к тому что уникальный индекс - самый быстрый и удобный способ реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 10:07 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivвсе поймут, что это не второй PK, а второе, третье и т.д. поле первого PK. Им останется сущая мелочь: угадать правильный порядок полей в ключе. для шапочного знакомства с таблицей это не нужно. впрочем, можно писать PK(1), PK(2) и так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 11:33 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
[quot Dima T]AkinaЕсли теория требует что значения ключа должны быть уникальны, то как это технически реализовать без использования уникального индекса? Наверно можно, но будет жутко тормозить. Так же, как это реализовано на практике. Вернее, почти так же. NewKey = 1 + MAX(Keys). А если при этом будет тормозить, то не потому, что алгоритм такой, а потому, что максимум будет искаться либо сканированием данных, либо, при наличии индекса, по нему, в то время как для первичного ключа новое значение будет браться из служебной статистики для данной таблицы (именно поэтому при генерации первичный ключ-автоинкремент запросто продуцирует "дыры" в последовательности значений). То есть замедление - организационное, а не алгоритмическое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 12:22 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
AkinaeNoseзачем?Дабы оценить (бес)полезность ключа для конкретного запроса. если ограничения накладываются на все поля составного ключа - то ключ полезен. иначе нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 12:47 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
AkinaТак же, как это реализовано на практике. Вернее, почти так же. NewKey = 1 + MAX(Keys). А если при этом будет тормозить, то не потому, что алгоритм такой, а потому, что максимум будет искаться либо сканированием данных, либо, при наличии индекса, по нему у вас по ораклу аж 8 постов! задумайтесь почему секвенсы не зависят от транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 12:51 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Akinaпри этом будет тормозить, то не потому, что алгоритм такой, а потому, что максимум будет искаться либо сканированием данных Я это и имел ввиду что без индекса будут тормоза из-за скана. Akinaв то время как для первичного ключа новое значение будет браться из служебной статистики для данной таблицы (именно поэтому при генерации первичный ключ-автоинкремент запросто продуцирует "дыры" в последовательности значений). То есть замедление - организационное, а не алгоритмическое. Тут без проверки уникальности все равно никуда: значение счетчика принудительно можно сдвинуть, и пойдет он те же значения выдавать. Или просто разрядность маленькая, круг пройдет и снова с 1 начнет. На автоинкременте жизнь не заканчивается. Есть ГУИДы. Ключ не обязательно должен быть абстрактным, например серия-номер паспорта. Индекс не только для вставки нужен, но и для выборки, хотя если записей всего 2-3 и больше не планируется, то может оказаться что скан быстрее. О чем вообще спорим? Я просто указал на кашу из понятий. Просто не надо делать утверждений что теплое всегда мягкое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 13:10 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
[quot eNoseесли ограничения накладываются на все поля составного ключа - то ключ полезен. иначе нет.[/quot]Здрасьте, приехали... а если только на префикс? а если индекс - покрывающий? Dima TТут без проверки уникальности все равно никуда: значение счетчика принудительно можно сдвинуть, и пойдет он те же значения выдавать. Или просто разрядность маленькая, круг пройдет и снова с 1 начнет.Одни серверы проверяют и при необходимости перегенерят. Наверное. Другие обнаружат дублирование и со спокойной совестью выдадут ошибку - а вот это не раз видел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 13:32 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
Dima TКлюч не обязательно должен быть абстрактным, например серия-номер паспорта.В этом случае натуральный ключ МОЖЕТ быть первичным. Но делать его первичным более чем неразумно - особенно если он потребуется использовать его для связи таблиц. Синтетический предпочтительнее в подавляющем большинстве случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 13:35 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
AkinaDima TКлюч не обязательно должен быть абстрактным, например серия-номер паспорта.В этом случае натуральный ключ МОЖЕТ быть первичным. Но делать его первичным более чем неразумно - особенно если он потребуется использовать его для связи таблиц. Синтетический предпочтительнее в подавляющем большинстве случаев. Не спорю. С натуральными на практике много казусов бывает. Я просто для примера написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 13:54 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
AkinaeNoseесли ограничения накладываются на все поля составного ключа - то ключ полезен. иначе нет.Здрасьте, приехали... а если только на префикс? а если индекс - покрывающий? а если только на префикс - то зачем тогда такой уникальный составной пк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 14:13 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
AkinaСинтетический предпочтительнее в подавляющем большинстве случаев. +1 и с ним удобнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 14:14 |
|
||
|
Идея метки составного PK в представлении структуры таблицы.
|
|||
|---|---|---|---|
|
#18+
[quot eNose]Akinaесли только на префикс - то зачем тогда такой уникальный составной пк?Ну так на каждый запрос индексов не нагенеришь... если префикс уникального составного ключа является оптимальным индексом для конкретного запроса - почему не использовать его? да, чуть медленнее выборка - зато выигрыш в пространстве и скорости работы вставок/удалений. Совсем неплохо, когда префикс оптимален для отбора/связывания/сортировки, а весь индекс - покрывающий, так и в данные лезть не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38903641&tid=1341066]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 519ms |

| 0 / 0 |
