Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание постоянных отношений в БД / 10 сообщений из 10, страница 1 из 1
29.07.2004, 21:49
    #32628196
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
Неприятность следующая (VFP7):
- создаю новую БД (новый dbc-файл) без помощи Wizard'а, закидываю туда два dbf-файла, проиндексированных по одному полю (id_kod - character-10), причем в главном (Parent) из этих двух файлов сей индекс имеет тип Candidate; затем пытаюсь щелчком мыши (drag&drop) установить постоянное отношение между этими 2-мя файлами по полю id_kod, - но при этом ничего не получается (все время индицируется запрещающий значок - черта в кружочке), куда бы я ни щелкал мышкой.
А, может, существует еще какой-нибудь способ создания таких отношений? Подскажите, пожалуйста - я все время работал только со свободными таблицами через SET RELATION, а вот теперь решил попробовать вкусить dbc-прелестей, и вот что вышло... Может, необходимо изменить какие-нибудь настройки?
...
Рейтинг: 0 / 0
30.07.2004, 00:42
    #32628268
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
Постоянные отношения устанавливаются между индексами, то есть тянуть надо не поле, а индекс с родительской таблицы в дочернюю.Помимо GUI способа можно все это проделывать и на DDL:

Код: plaintext
1.
ALTER TABLE child;
ADD FOREIGN KEY id_kod TAG id_kod REFERENCES parent TAG id_kod

Но есть одно маленькое 'но' - с помощью DDL нельзя настроить правила ссылочной целостности и требуется открывать контейнер базы на низком уровне:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select  0 
use db.dbc
=ri("parent", "id_kod", "child", "id_kod", "C", "R", "R")

function ri
*
lparameters tcParentTable, tcParentTag, tcChildTable, tcChildTag, tcUpdate, tcDelete, tcInsert
*
local lnObjectID

	tcRIInfo = padr(m.tcUpdate + m.tcDelete + m.tcInsert,  6 )
	
	*	обновляем правила ссылочной целостности
	*	reqitem
	locate for ObjectType = 'Table' and Objectname = m.tcChildTable
	if found()
		lnObjectID = ObjectID
		locate for ObjectType = 'Relation' and m.tcChildTag$Property and m.tcParentTable$Property and m.tcParentTag$Property and ParentID = m.lnObjectID
		if found()
			replace RiInfo with m.tcRIInfo
		else
			? "Could not set RI Information."
		endif
	endif
endfunc

Теперь, на счет SET RELATION. Постоянные отношения не имеют ничего общего c SET RELATION. У них разные цели. Постоянные отношения были введены для обеспечения ссылочной целостности БД, тогда как SET RELATION существует лишь для синхронизации перемещения по нескольким связанным таблицам в данной конкретной сессии данных.

Удачи.
...
Рейтинг: 0 / 0
30.07.2004, 09:06
    #32628474
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
Раздел "Связи и отношения между таблицами"
http://www.foxclub.ru/kb/index.php?sid=35321&aktion=artikel&rubrik=004&id=103&lang=ru
...
Рейтинг: 0 / 0
30.07.2004, 21:10
    #32630222
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
To Анатолий Широков:
Спасибо. Насчет ссылочной целостности я "слегка" в курсе. Мне нужно именно синхронное перемещение - просто я подумал, что если я создам БД с постоянными отношениями между составляющими файлами, и затем добавлю все это добро в Data Enviroment создаваемой формы, то (я так предполагал) мне не понадобится в форме указывать связи между таблицами, поскольку они уже указаны в БД. Но если мое предположение ошибочно, то и хрен с ними - с этими dbc-шниками, буду работать с Free Tables. А насчет перетягивания мышкой - так я именно индексы и перетаскивал, это ж и в Data Enviroment формы почти также делается: линия связи замыкается на изображение индекса, даже если ее тянуть на изображение поля.
To ВладимирМ:
Спасибо за ссылку. Вникаю.
...
Рейтинг: 0 / 0
01.08.2004, 01:01
    #32630530
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
To ВладимирМ:
Большое спасибо за предоставленный материал, такого ни в одном руководстве не встретишь - Ваш опыт поистине бесценен, когда Вы только все успеваете? В своем материале Вы упоминаете Power Designer - если не затруднит, сообщите, пожалуйста, какую-нибудь достойную с Вашей точки зрения ссылку с доступным описанием сего "зверя".
...
Рейтинг: 0 / 0
01.08.2004, 02:14
    #32630537
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
To ALL:
Да, кстати, может кто знает - чем отличается Power Designer от Power Designer AMC ? А то я тут что-то такое нашел, по случаю.
...
Рейтинг: 0 / 0
05.08.2004, 22:18
    #32637736
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
To ALL:
Понимаю, что вопрос немного не по профилю форума, но раз уж тема затронута - посоветуйте и вправду какую-нибудь ссылку с доступным для понимания материалом по Power Designer.
...
Рейтинг: 0 / 0
06.08.2004, 09:38
    #32637995
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
Я не в курсе. Спроси в конфе по проектированию БД

http://www.sql.ru/forum/actualtopics.aspx?bid=36
...
Рейтинг: 0 / 0
06.08.2004, 14:35
    #32638774
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
to neznajka
Почитай еще по этой ссылке
http://kodu.neti.ee/~juri4/vfp60/database_design_01_ru.htm
...
Рейтинг: 0 / 0
06.08.2004, 22:34
    #32639373
neznajka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание постоянных отношений в БД
To ВладимирМ:
Большое спасибо за ссылку - нашел там кое-что полезное для себя. Полагаю, тему можно закрыть - она действительно не из этого форума.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание постоянных отношений в БД / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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