Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите... / 7 сообщений из 7, страница 1 из 1
30.05.2004, 20:32
    #32540140
Taevas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
Объясните пожалуйста, кто знает, как все-таки индексы обеспечивают целостность системы?
Спасибо...
...
Рейтинг: 0 / 0
31.05.2004, 10:58
    #32540600
Wireless
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
Индексы не обеспечивают "целостность системы" :))
но они могут обеспечивать referental integrity, то биш
ссылочную целостность - на каждый foreign key полагается
создавать unique индекс.
...
Рейтинг: 0 / 0
31.05.2004, 12:02
    #32540755
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
2 Wireless
то биш ссылочную целостность - на каждый foreign key полагается
создавать unique индекс.


Уникальный индекс на FK? Хм... забавно, может Вы имели в виду РК? А то интересно как обеспечить уникальность в отношении один ко многим? :)
...
Рейтинг: 0 / 0
31.05.2004, 16:41
    #32541385
Wireless
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
Да, конечно. При создании FK обязательно
создание уник.индекса по полю PK master-таблицы.
И рекомендуется (если мы говорим про один-ко-многим)
создание индекса (не уник, конечно) по
ключевому полю/полям в slave-таблице.
Сорри за конфуз.
...
Рейтинг: 0 / 0
31.05.2004, 16:51
    #32541426
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
2 Wireless

А по умолчанию индекс разве не создается?
Я в PD когда указал генерить индексы по FK у меня моментально скрылись флажки на констрейнты и наоборот, поэтому подумал, что Postgres собственно каким то образом именно через индексы по умолчанию и поддерживает ссылочную целостность.
Этому факту удивился, на всякий случай проверил и попробовал вручную создать индексы на FK но на производительности это не сказалось.
...
Рейтинг: 0 / 0
01.06.2004, 11:37
    #32542378
Wireless
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
нет, автоматически ПГ не создает:
Код: plaintext
1.
2.
isbs=# alter table abba2 add foreign key (t) references abba(t) on delete cascade;
ERROR:  there is no unique constraint matching given keys for referenced table "abba"

выигрыш в производительности будет, конечно, зависеть от характера конкретно тех запросов, которые применяются в приложении. выигрыш наверняка будет, если будешь часто join по этим таблицам по этим полям делать.
...
Рейтинг: 0 / 0
01.06.2004, 12:04
    #32542462
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите...
2 Wireless
Ну будьте же пожалуйста внимательнее, сообщение об ошибке говорит только о том что Вы не определили в родителе ни PK ни уникального индекса и соответственно не можете создать в дочерней таблице FK по полю t.
Меня же интересует надо ли в таблице abba2 создавать еще и индекс по полю t если по этому полю уже определен FK.
Почему меня это интересует?
Потому что, например в MS SQL поле которое объявляется как FK на родительскую таблицу является закономерным кандидатом на создание индекса для улучшения производительности при джоинах.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите... / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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