|
|
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
softwarer Да, и реализации ссылочной целостности на триггерах в приведенных мной примерах выше это тоже не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 09:36 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовДаже если научиться идентифицировать любую сущность в БД по одному идентификатору, это никак не поможет с часто встречающейся задачей отобразить эту сущность в интерфейсе (в смысле, найти, перейти к ней для просмотра/редактирования). Потому что придется по идентификатору решать задачу вида "а где сущность XXXXXXX отображать?". Это просто неверно. Я не сторонник орм-овского подхода, но это не повод отрицать его возможности. В частности, приведенная Вами задача, чуть утрируя, решается в нем одной строчкой: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:12 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовДа, и реализации ссылочной целостности на триггерах в приведенных мной примерах выше это тоже не поможет. Хм. Сергей, Вы атакуете позицию, которую я не собираюсь защищать, причем атакуете ее довольно странной логикой - "Она не поможет (хотя и не помешает) решить некоторые задачи". Игнорируя те задачи, решить которые она как раз поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 10:14 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
softwarer Код: plaintext Вы наверное не поняли мою мысль. Попытаюсь ее донести более подробно. Ибо в приведенном примере Вы могли с тем же успехом оставить только Edit. Это бы все равно ничего не поменяло. Предположим, у меня есть секвенсор, который умеет генерить уникальные идентификаторы (неважно какого типа), и я привязал его ко всем суррогатным PK своих таблиц (опять же неважно какого типа). Теперь у меня возникает, например, такая задача. Для любой записи в любом справочнике уметь задавать произвольные атрибуты и их значения, настраиваемые пользователями (это не внутренняя разработка, потому что там наворотят юзера - мне не интересно, пример - технические параметры номенклатуры и миграция их в картотеку ОС, где они могут меняться со временем и в зависимости от узла ОС). При удалении записи из справочника необходимо каскадно удалять все записи о таких атрибутах (дискутировать насчет целесообразности удаления записей из справочников не собираюсь, это здесь не принципиально, можно заменить "справочник" на "документ" или "проводку", если хочется). Также необходимо обеспечить возможность поиска (в конкретном справочнике и вообще в БД) по таким атрибутам и их значениям (то есть, один и тот же атрибут может использоваться в нескольких справочниках), копирование атрибутов и их значений при копировании сущностей. Так как справочников, документов и прочих сущностей в БД немеряно, создавать на каждую сущность отдельную табличку с атрибутами слишком дорого. Поэтому о DRI забываем. Итак, проблема первая - insert в таблицу attrib_values. В таблице со значениями атрибутов необходимо иметь ссылку на элемент справочника. Предположим, у меня идентификатор записи в справочнике уникален в пределах БД и равен 1. Как проверить в триггере на insert на таблицу attrib_values, что запись с идентификатором 1 вообще есть в БД (в каком-либо справочнике)? Отказаться от контроля ссылочной целостности при вставке? Себе дороже потом разгребать. Проблема вторая - поиск сущностей по атрибуту (или его конкретному значению). Найти все записи об использовании атрибута безотносительно сущности несложно (в attrib_values ищем записи по значению идентификатора атрибута). А вот потом начинается беда. Ну, пусть знаю я, что атрибут используется в сущности с идентификаторами 1, 2 и 150, что это такое, дальше-то куда? Как проверить, хотя бы, корректно ли он используется для этой сущности? И т.п. для каждой задачи в преамбуле моего сообщения. Собственно, проблема здесь одна. Имея набор записей в attrib_values, невозможно только по значению одного поля id_entity, в котором лежит уникальный в пределах БД идентификатор, определить, что это за entity такая, которая идентифицируется этим значением. Вы, видимо, знаете волшебную функцию FindObjectById, которая по значению идентификатора вернет, в какой таблице лежит сущность, которую он идентифицирует. Может, для oracle такая штука для sequence-а действительно есть, таких тонкостей не знаю (но исходя из здравого смысла думаю, что нет такой возможности, ибо пришлось бы хранить всю историю значений, куда они отлетели), но все же тэг src delphi в Вашем сообщении мне подсказывает, что Вы меня неверно поняли. Простой пример: [контрагенты] id info 1 "Иванов" 2 "Петров" 3 "Сидоров" [номенклатура] id info 4 "Ручка" 5 "Ножка" 6 "Таз" attrib_values id_entity id_attrib 4 8 3 8 4 9 5 7 1 8 2 7 (*) 1 9 Как понять, что строка (*) используется для контрагента "Иванов"? Откуда сделать вывод, что сущность надо искать именно в контрагентах? Безусловно, можно сделать идентификатор для id_entity обобщенного вида "номенклатура_4", то есть, заложить возможность определения по его значению (в общем виде) вида сущности, но тогда не вижу принципиального смысла делать глобально уникальный секвенсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:10 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Простой пример: [контрагенты] id info 1 "Иванов" 2 "Петров" 3 "Сидоров" [номенклатура] id info 4 "Ручка" 5 "Ножка" 6 "Таз" attrib_values id_entity id_attrib 4 8 3 8 4 9 5 7 1 8 2 7 (*) 1 9 Как понять, что строка (*) используется для контрагента "Иванов"? Откуда сделать вывод, что сущность надо искать именно в контрагентах? А зачем делить на "контрагенты", "номенклатура",..? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:32 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Опечатка. В предпоследнем абзаце не Иванов, а Петров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:33 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовА зачем делить на "контрагенты", "номенклатура",..? То есть, развивая Вашу мысль, все таблицы в БД "наследуются" от одной таблицы? Ну-ну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:35 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Сахават ЮсифовА зачем делить на "контрагенты", "номенклатура",..? То есть, развивая Вашу мысль, все таблицы в БД "наследуются" от одной таблицы? Ну-ну. Ну а зачем тогда уникальный на всю БД идентфикатор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:44 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовНу а зачем тогда уникальный на всю БД идентфикатор? Это не моя идея. Моя идея - для идентификации любой сущности, которую потребуется идентифицировать, достаточно знать ее идентификатор, уникальный в рамках таблицы (например, identity или sequence), где лежит ее (сущности) заголовок, и имя таблицы (ну или аналог имени таблицы, который навсегда связан с таблицей и исходя из значения которого можно построить требуемые операторы SQL). Глобально уникальный идентификатор (в рамках даже целой БД) мне не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:49 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Сахават ЮсифовНу а зачем тогда уникальный на всю БД идентфикатор? Это не моя идея. Моя идея - для идентификации любой сущности, которую потребуется идентифицировать, достаточно знать ее идентификатор, уникальный в рамках таблицы (например, identity или sequence), где лежит ее (сущности) заголовок, и имя таблицы (ну или аналог имени таблицы, который навсегда связан с таблицей и исходя из значения которого можно построить требуемые операторы SQL). Глобально уникальный идентификатор (в рамках даже целой БД) мне не нужен. Вопросы касаются такой архитетуры. Она эффективно, когда разработчие не имеет возможности классифицировать сущности или их очень много. Валим все на пользователя и успокаивемся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:53 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов softwarer Код: plaintext Вы наверное не поняли мою мысль. Попытаюсь ее донести более подробно. Ибо в приведенном примере Вы могли с тем же успехом оставить только Edit. Это бы все равно ничего не поменяло. Мой ответ будет состоять из нескольких тезисов. 1. Я отвечаю Вам на сказанное Вами: "с часто встречающейся задачей отобразить эту сущность в интерфейсе (в смысле, найти, перейти к ней для просмотра/редактирования). Потому что придется по идентификатору решать задачу вида "а где сущность XXXXXXX отображать?"" и только на это. В Вашем "не поняли мысль.... более подробно" об этом вообще нет ни слова, Вы целиком ушли от темы. Cм. http://softwarer.ru/about.html#Topic 2. На то, к чему Вы клоните, я ответил в http://www.sql.ru/forum/actualthread.aspx?tid=402005&pg=6#3867730 и как мне представляется, довольно окончательно. 3. Я не думал, что собеседнику на этом форуме потребуется объяснять, что такое "виртуальный метод" и чем он влияет на "ничего бы не поменяло". 4. Тег {src delphi} в моем сообщении и Ваша реакция на него показывает, что как раз Вы меня совершенно не поняли, либо проигнорировали, например, мои упоминания об ORM. 5. Я не хочу упорно и последовательно рассказывать о достоинствах метода, который мне в целом не мил и не интересен. В то же время меня не радует и.... невнимательно-безалаберное отрицание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:57 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
YulkaЕсли Вам множества не нужны, то не используйте их Нужны как области определения и значений табличных функций. YulkaЯ бы для таких объектов использовала другие механизмы. Таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:58 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
softwarerМой ответ будет состоять из нескольких тезисов. Возникает ощущение, что Вы не переносите, когда Вам говорят, что Вы неправы. softwarerВ Вашем "не поняли мысль.... более подробно" об этом вообще нет ни слова, Вы целиком ушли от темы. Вот что у меня было написано: "Также необходимо обеспечить возможность поиска (в конкретном справочнике и вообще в БД) по таким атрибутам и их значениям (то есть, один и тот же атрибут может использоваться в нескольких справочниках)". Поиск выполняет человек, он хочет по атрибуту понять "где это", посмотреть на это. Ответ "в сущностях с номерами X,Y,Z" вряд ли устроит кого-то. Если же с формальной точки зрения точно известно, что хочется отобразить, отобразить это труда не представляет, это просто техническая задача. Так что с точки зрения идентификации сущности в БД это полностью равносильные задачи. softwarer 2. На то, к чему Вы клоните, я ответил в http://www.sql.ru/forum/actualthread.aspx?tid=402005&pg=6#3867730 и как мне представляется, довольно окончательно. Это Вам почему так представляется, если я даже не понял суть Вашего ответа, как он относится к тому, что я написал? softwarer 3. Я не думал, что собеседнику на этом форуме потребуется объяснять, что такое "виртуальный метод" и чем он влияет на "ничего бы не поменяло". Пожалуйста, обясните, что-такое "виртуальный метод", например, в рамках триггера или хранимой процедуры. Ибо мне это надо на SQL на уровне сервера. И при чем тут ORM, Вы сами решили, что это именно то, что я имею в виду, или я дал Вам какие-то основания для этого, и даже если Вы правы, что из этого следут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 12:28 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовВозникает ощущение, что Вы не переносите, когда Вам говорят, что Вы неправы. Рассказ о том, чего я не переношу, имеет довольно большие шансы обидеть Вас, и с некоторой вероятностью - незаслуженно. Поэтому предлагаю не углубляться в эту тему. Сергей Васкецов softwarerВ Вашем "не поняли мысль.... более подробно" об этом вообще нет ни слова, Вы целиком ушли от темы. Вот что у меня было написано: "Также необходимо обеспечить возможность поиска (в конкретном справочнике и вообще в БД) Покажите, пожалуйста, где это написано в сообщении /topic/402005&pg=5#3867435, на которое я отвечаю. Что касается Вашей попытки забыть то письмо и увести тему в сторону, то я могу третий раз повторить: это направление мне не интересно и обсуждать его я не собираюсь. Отмечу, что в Ваших рассуждениях есть и другие дырки, но из-за глобального нежелания обсуждать это направления я не буду указывать их; если хотите, считайте эти выкладки безупречными. Сергей ВаскецовЭто Вам почему так представляется, если я даже не понял суть Вашего ответа, как он относится к тому, что я написал? Потому что беседа, в отличие например от драки, нуждается в желании обеих сторон. Я вполне четко написал, что участвовать в этом направлении беседы не собираюсь; и учитывая демонстрируемый Вами уровень владения русским языком, не понять этого Вы не могли, если, конечно, читали ответ. Сергей Васкецов softwarer 3. Я не думал, что собеседнику на этом форуме потребуется объяснять, что такое "виртуальный метод" и чем он влияет на "ничего бы не поменяло". Пожалуйста, обясните, что-такое "виртуальный метод", например, в рамках триггера или хранимой процедуры. Как только в трехзвенках и ормах появятся триггера и хранимые процедуры, я без каких-либо проблем покажу Вам применение виртуальных методов в этих случаях. Собственно, можно и сейчас, проблем нет, но к теме это отношения не имеет. Сергей ВаскецовИбо мне это надо на SQL на уровне сервера. И при чем тут ORM, Вы сами решили, что это именно то, что я имею в виду, ORM при том, что Вам стоило бы читать то, на что Вы отвечаете. Даю ссылку на то, с чего вообще началась эта тема: /topic/402005&pg=4#3862701 Если "Вам это нужно на SQL на уровне сервера", то непонятно, с чего Вы вообще стали отвечать на мой пост. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 12:46 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
softwarer Все ясно. Спасибо за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 12:53 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
YulkaДействительно, что-то не о том. Речь об оптимизации проверки, и делают ли ее СУБД. Отвлечемся от РК, пусть просто в таблице есть две группы уникальных индексов с живой изменчивостью. Чтобы проверить уникальность одного, мне надо перелопатить все записи (про внешние молчу). Я думаю, что одноврменно при этом проверяются и другие уникальные индексы (без дополнительного перелопачивая). Или это не так и проверка по следующему идет заново? Тут обсуждать нечего, тут ответ да-нет предполагается :-) Каждый индекс таблицы обновляется отдельно. Алгоритм примерно такой. СУБД обнаружила, что в записи изменилось индексированное поле. СУБД находит все индексы, в которые это поле включено. В каждом из индексов находит лист со старым значеним ключа (для этого используются эффективные методы поиска, а не "перелопатить все записи"), и удаляет этот лист из индекса, затем находит место, в которое нужно вставить новое значение ключа, вставляет его в индекс и при необходимости балансирует его. Не важно, используется индекс для ограничения целостности или только для оптимизации. Индекс потенциально значительно снижает производительность операций изменения данных. Индексы не зависят друг от друга, ключи в них имеют разный порядок поэтому результат поиска ключа в одном индексе ничего не говорит о том, где может находится другой ключ в другом индексе. Можно в запись таблицы добавить некие адреса листовых блоков индексов, которые ссылаются на эту запись, и при обновлении записи не искать листовые блоки, а получать их прямо по ссылке. Но тогда обновление индекса станет ещё более сложной операцией, так что выгода во времени будет незначительной. Для операции вставки ключа в индекс по любому придётся искать место для ключа традиционными способами. Всё это наверняка написано в книжке концепций СУБД которую ты используешь. В конкретной СУБД могут применяться те или иные особые механизмы. Об этом лучше спросить на тематическом форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 13:44 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов softwarer Хочу еще добавить на свежую голову вот что. Даже если научиться идентифицировать любую сущность в БД по одному идентификатору, это никак не поможет с часто встречающейся задачей отобразить эту сущность в интерфейсе (в смысле, найти, перейти к ней для просмотра/редактирования). Потому что придется по идентификатору решать задачу вида "а где сущность XXXXXXX отображать?". Вот для этих целей как раз и проще иметь отдельную "часть идентификатора", на которую в простом случае подойдет и имя таблицы. Это не новость. Oracle использует глобальные ROWID для оптимизации доступа по объектным ссылкам (OID), которые кроме всего прочего содержать индекс таблицы или типа, идентифицируемого объекта. Глобальный ROWID занимает больше места, поэтому объектные ссылки по возможности следует ограничивать пределами одной таблицы, чтобы вместо глобального ROWID оракл мог использовать локальный (для таблицы) ROWID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 13:52 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
YulkaДействительно, что-то не о том. Речь об оптимизации проверки, и делают ли ее СУБД. Отвлечемся от РК, пусть просто в таблице есть две группы уникальных индексов с живой изменчивостью. Чтобы проверить уникальность одного, мне надо перелопатить все записи (про внешние молчу). Я думаю, что одноврменно при этом проверяются и другие уникальные индексы (без дополнительного перелопачивая). Или это не так и проверка по следующему идет заново? Тут обсуждать нечего, тут ответ да-нет предполагается :-) Да - попытка добавить/изменить данные пресекается, если хоть один UNIQUE нарушен. Нет - exeption будет сгенерирован только по одному нарушенному UNIQUE, даже если я пытался нарушить четыре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:16 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
YulkaМне показалось, что Вы ниже согласились со мной, что суррогатные ключи нужно прошить в подкорку. Слова «это абсолютно неверно» обычно не означают согласия. YulkaНо они не прошиты, и вводится и суррогатный PK и UNIQUE INDEX на потенциальные ключи. Мне показалось, что у вас путаница по поводу UNIQUE INDEX. Есть индексы — дополнительные структуры для ускорения поиска — которые могут быть неуникальными или же уникальными (UNIQUIE INDEX). А есть специальное ограничение целостности, определяющее альтернативный ключ — ключевое слово UNIQUE. Типа того: Код: plaintext 1. YulkaВ то время как это (если исключить изменчивость естественных) - по сути одно и то же, и может быть использовано как одно и то же. Что именно «одно и то же»? Ключи и индексы? Это не одно и то же. Суррогатные и естественные ключи? Это «одно и то же» только в смысле соответствия определению потенциального ключа. Вы это имели в виду? YulkaНо ввиду того, что те, что я объявила UNIQUE INDEX, не являются PK, я не могу их точно также использовать дальше (в вычислениях, в зависимых таблицах), а должна вручную их контролировать там. Это почему? Возьмем, к примеру, внешние ключи. По определению, FK может ссылаться на первичный (по умолчанию) или явно указанный альтернативный ключ. Типа того: Код: plaintext 1. 2. YulkaПростите, я подумала, что понятно из контенста предыдущих обсуждений и обсуждаемой ситуации: есть суррогатный PK и ДРУГИЕ поля, являющиеся UNIQUE INDEX для данной таблицы. Видимо, опять вместо UNIQUE INDEX надо понимать альтернативные ключи (UNIQUE), я не ошибаюсь? YulkaПроверять уникальность PK и их ОТДЕЛЬНО это бред, с моей т.з. Вот я и спрашивала, оптимизирована ли такая ситуация в современных СУБД. А вы можете точно сформулировать, что означает «отдельно» или «не отдельно» ? Тогда и можно будет обсудить этот вопрос. Пока ваша мысль не ясна. Yulka mir YulkaИ студентов с множествами учить работать, а не с ключами.Это что же за такое противопоставление: множества VS. ключи? Что бы это значило? Это противопоставление содержательной разработки (теоретико-множественных органичений предметной области) и технической реализации, которая (в ключах, в моделях данных, в СУБД и т.д.) может быть разная. Это, IMHO, противопоставление типа синего и нового . Или теплого и мягкого . Далее, что за странный набор: ключи, модели данных и СУБД ? По какому признаку вы объединили эти вещи в ряд? Простите, я не поспеваю за прыжками (пардон) вашей мысли. Кроме того, вы включили ключи в понятие технической реализации, что является ошибкой. Потенциальные ключи есть часть реляционной модели данных (теории), где они не менее абстрактны, чем, скажем, множества, ибо являются просто определениями. YulkaИзвините, но я не считаю, что люди образуют множество. Я влезу, можно? Думаю, просто имелось в виду, что все люди уникальны, вот и всё. Часто про какую-то совокупность объектов говорят «множество», именно желая подчеркнуть их уникальность, а не как-то теоретически их описать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 10:19 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mir YulkaМне показалось, что Вы ниже согласились со мной, что суррогатные ключи нужно прошить в подкорку. Слова «это абсолютно неверно» обычно не означают согласия. YulkaНо они не прошиты, и вводится и суррогатный PK и UNIQUE INDEX на потенциальные ключи. Мне показалось, что у вас путаница по поводу UNIQUE INDEX. Есть индексы — дополнительные структуры для ускорения поиска — которые могут быть неуникальными или же уникальными (UNIQUIE INDEX). А есть специальное ограничение целостности, определяющее альтернативный ключ — ключевое слово UNIQUE. Типа того: Код: plaintext 1. The Database Engine automatically creates a UNIQUE index to enforce the uniqueness requirement of the UNIQUE constraint. Не надо вводить девочку в заблуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 11:56 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовThe Database Engine automatically creates a UNIQUE index to enforce the uniqueness requirement of the UNIQUE constraint. Не надо вводить девочку в заблуждение. Из какой книжки цитата? В общем случае это не так. Например, Оракл может создавать ограничения целостности без проверки существующих данных илбо с отложенной до завершения транзакции проверкой. В этом случае для UNIQUE constraint, создаётся NON UNIQUE index. Теоретически, для UNIQUE constraint индекс создавать не обязательно, правда реализовать процедуру провеки ограничения в Online без такого индекса будет проблематично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 15:45 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
mcureenab Сахават ЮсифовThe Database Engine automatically creates a UNIQUE index to enforce the uniqueness requirement of the UNIQUE constraint. Не надо вводить девочку в заблуждение. Из какой книжки цитата? В общем случае это не так. Например, Оракл может создавать ограничения целостности без проверки существующих данных илбо с отложенной до завершения транзакции проверкой. В этом случае для UNIQUE constraint, создаётся NON UNIQUE index. Теоретически, для UNIQUE constraint индекс создавать не обязательно, правда реализовать процедуру провеки ограничения в Online без такого индекса будет проблематично. Книжка называется BOL MS SQL2005. Сдури или по нужде можно много чего делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 16:51 |
|
||
|
Первичный ключ из нескольких внешних
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов mirМне показалось, что у вас путаница по поводу UNIQUE INDEX. Есть индексы — дополнительные структуры для ускорения поиска — которые могут быть неуникальными или же уникальными (UNIQUIE INDEX). А есть специальное ограничение целостности, определяющее альтернативный ключ — ключевое слово UNIQUE. Типа того: Код: plaintext 1. The Database Engine automatically creates a UNIQUE index to enforce the uniqueness requirement of the UNIQUE constraint. Не надо вводить девочку в заблуждение.Не будете ли вы так любезны указать мне, каким именно образом я ввел девочку в заблуждение? Или вы думаете, что привести слабо относящуюся к делу цитату достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2007, 09:11 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34378094&tid=1544689]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
193ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 544ms |

| 0 / 0 |
