Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Активация индексов в связанны БД не по полям связи


Автор: Pamdrik 6.3.2005, 12:52
Есть в наличии 3 БД a в крутом и новомодном формате dBase smile Программу писал для моей мамы. Программа рассчитывает калькуляцию для определённых видов строительных работ или на стоимость определённого материала.
Работа в программе идёт через Table.

Первая БД главная izdelie.dbf . Содержит название работ или строительного материала.
Структура её полей такова:
FieldName | Type | Смысловое значение поля
Kluch_izd N инкременстное поле, увеличивает сама программа
Name_izd C имя работы или материала(доска обрезная, цемент такой-то марки)
………… …
Проиндексированы поля Kluch_izd и Name_izd. Активен индекс Name_izd.

Вторая БД master.dbf, подчинённая первой БД.
Структура её полей такова:
FieldName | Type | Смысловое значение поля
Inc_mast N инкременстное поле, увеличивает сама программа
Ind_mast N поле связи с первой таблицей
Data D дата калькуляции, каждый месяц калькуляция рассчитывается заново
………….. ….
Проиндексированы поля Inc_mast, Ind_mast, Data.
Вторая является подчинённой таблицей первой БД, связь происходит по полю Ind_mast -> Kluch_izd. Активен индекс Ind_mast (как же иначе? smile Связи не будет!).

Третья БД kolichestvo.bdf, подчинённая второй БД.
Структура её полей такова:
FieldName | Type | Смысловое значение поля
Ind_kol N поле связи с второй таблицей
Name_kol C имя сырья, исходного материала
…………. ….
Проиндексированы поля Ind_kol, Name_kol.
Третья БД является подчинённой второй БД, связь происходит по полю Ind_kol -> Inc_mast. Активен индекс Ind_kol (как же иначе? Связи не будет! smile ).

Вот и к вопросу подошли smile
Так как эти три таблицы связаны, по соответствующим полям, то для связи активны соответствующие индексы – иначе не будет связи smile. Но для пользователя это неудобно! Во второй БД куда было бы удобнее, ели бы был активен индекс по Дате smile (вместо этого даты перемешаны, если пользователь их ввел не в хронологическом порядке!), но поменять активный индекс, значит разрушить связь с первой таблицей… smile
Такая же картина и в третьей smile Воот….
Я знаю что пути есть, ребята, подскажите пожалуйста где моя узость взглядов. Раскройте пожалуйста горизонты smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)