Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Индексация в Master/Deatail

1.8K
03 января 2004 года
CoderDecoder
53 / / 22.10.2003
Каким образом строить мастер\дитейл таблицы, если связываемые поля обязательно должны быть проиндексированы, что в свою очередь говорит о их уникальности? А отношения м\д ведь строятся по принципу:

полю ID со значением 001 в мастер таблице сответствуют поля ID с таким же значением 001 в дитейл таблице, которых не может быть больше одной из-за индексации. Ну и как тут поступать? СУБД - Paradox, компонент - TTable1, TTable2. Застрял !!!
348
08 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by CoderDecoder
Каким образом строить мастер\дитейл таблицы, если связываемые поля обязательно должны быть проиндексированы, что в свою очередь говорит о их уникальности? А отношения м\д ведь строятся по принципу:

полю ID со значением 001 в мастер таблице сответствуют поля ID с таким же значением 001 в дитейл таблице, которых не может быть больше одной из-за индексации. Ну и как тут поступать? СУБД - Paradox, компонент - TTable1, TTable2. Застрял !!!


Может у меня после нового года ещё мозг не поднялся или я чего-то не понимаю.
Если тебе нужно связать две таблицы в Paradox, то на уровне Paradox они не вяжутся, а на уровне приложения, просто напиши функцию по занесению значений в обе таблицы, ну и удаляй их соответственно когда надо и никаких повторений не будет.

1.9K
08 января 2004 года
AviDen
91 / / 26.12.2003
Цитата:
Originally posted by CoderDecoder
Каким образом строить мастер\дитейл таблицы, если связываемые поля обязательно должны быть проиндексированы, что в свою очередь говорит о их уникальности? А отношения м\д ведь строятся по принципу:

полю ID со значением 001 в мастер таблице сответствуют поля ID с таким же значением 001 в дитейл таблице, которых не может быть больше одной из-за индексации. Ну и как тут поступать? СУБД - Paradox, компонент - TTable1, TTable2. Застрял !!!



One minute, please...

А ты часом не переборщил? Индексы ведь могут быть как уникальными, так и нет! В мастер-таблице создается уникальный индекс (и/или первичный ключ - в одних СУБД эти понятия могут быть тождественны, в других - нет). В детальной по полю связи тоже желательно создать индекс, но НЕ УНИКАЛЬНЫЙ. И все будет чита-дрита!

А вот связывать их на уровне клиентского приложения, хоть и можно, но не рекомендуется в клиент-серверной архитектуре. Т.е., конечно, на уровне VCL может присутствовать связь между компонентами через свойство MasterSource, но это лишь для удобства представления данных, не более того. Контроль существования значений в мастер-таблицах, а также каскадное обновление/удаление - это прерогатива сервера (только вот не знаю, поддерживается ли это в Paradox).

1.8K
10 января 2004 года
CoderDecoder
53 / / 22.10.2003
Цитата:
Originally posted by AviDen

В детальной по полю связи тоже желательно создать индекс, но НЕ УНИКАЛЬНЫЙ. И все будет чита-дрита!



А как в Database Desktop-e создать ключ, но не уникальный? Или я тоже ещё не отрезвел ?

348
10 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by CoderDecoder


А как в Database Desktop-e создать ключ, но не уникальный? Или я тоже ещё не отрезвел ?


Эээ... Ключ и индекс вещи разные. Ключ уникален всегда и является разновидностью ограничений на таблицу. Индекс же нужен для ускорения поиска данных в базе.

При создании индекса в DbD просто не ставь флажок Unique.

1.8K
10 января 2004 года
CoderDecoder
53 / / 22.10.2003
Цитата:
Originally posted by Saris

Эээ... Ключ и индекс вещи разные. Ключ уникален всегда и является разновидностью ограничений на таблицу. Индекс же нужен для ускорения поиска данных в базе.

При создании индекса в DbD просто не ставь флажок Unique.



Эт я знаю, сто такое ключ и что такое индекс, а ты наверное забыл что в парадолсе если ставить ключ, то поле автоматом становится уникальным. Так что мне либо не надо ставить ключ. Полюбому спасибо. Ща вроде всё работает. А как у тебя с IBExpert и FIBPlus?

348
10 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by CoderDecoder

в парадолсе если ставить ключ, то поле автоматом становится уникальным. А как у тебя с IBExpert и FIBPlus?



Может я конечно не чётко выразился, но я про это и писал. Просто изначальный твой вопрос был про индексы, а потом ты как-то плавно перешёл на ключи... Ну да ладно, главное что заработало.

Цитата:
Originally posted by CoderDecoder

А как у тебя с IBExpert и FIBPlus?



Честно говоря хреново, пару раз перегонял программы с InterBase на Oracle жутко матерился...

1.8K
12 января 2004 года
CoderDecoder
53 / / 22.10.2003
Цитата:
Originally posted by Saris


Может я конечно не чётко выразился, но я про это и писал. Просто изначальный твой вопрос был про индексы, а потом ты как-то плавно перешёл на ключи... Ну да ладно, главное что заработало.



Честно говоря хреново, пару раз перегонял программы с InterBase на Oracle жутко матерился...



Я тут пытаюсь перейти на FireBird и FIBPlus, но пока, что не совсем успешно. Помощь не откопал ещё, а с книжками проблема. Думаю разберусь.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог