Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Вниз

Графы и Referential Integrity   Найти похожие ветки 

 
OneOfTheFew   (2003-02-18 16:54) [0]

Любителям гимнастики для ума!!!

Графы и Referential Integrity:

Есть матрица M размерностью NxN,описавающая возможные взаимоотношения между элементами (A,B,C,D,E,F,G) - пусть эти элементы - файлы Paradox,связанные ссылочной целостностью :
Если элемент M[x,y]="*" - это значит, что M[X,0] является
"master" для M[Y,0].
Случай M[x,y]="*", где x=y не рассматриваем.

ABCDEFG
A
B*
C**
D *
E *
F

Другое представление:

A->B
B->С
С->(terminal)
D->E
E->(terminal)
F->(terminal)
G->D

Надо "пройти" матрицу M и составить порядок удаления данных из таблиц.

Ногами просьба не бить :)))


 
DarkGreen   (2003-02-18 17:41) [1]

В свойствах ссылочной целостности вместо Restriсt поставь Cascade. И будет оно у тебя спокойно удаляться в любом порядке
;-)


 
OneOfTheFew   (2003-02-18 17:58) [2]

2 Dark Green
Спасибо, попробую!


 
OneOfTheFew   (2003-02-18 18:07) [3]

2 Dark Green
Слушай, чего то не проходит Твой вариант :-(


 
DarkGreen   (2003-02-19 05:34) [4]

Странно :-/
Ну тогда так:

function dddd(K, L: integer);
begin
for I := k to n do
begin
for J := l to n do
begin
if MyArray[I, J]="*" then
dddd(I, J);
end;
delete from Table[I, 0]
end;
end;

.........
dddd(1, 0)
.........


Если не ошибаюсь :-)


 
DarkGreen   (2003-02-19 06:23) [5]

Опс, сорри, затупил откровенно. Так правильнее

var
MyArray: array[0..N, 0..N + 1] of Integer;
Deleted: array[0..N] of Boolean;

function dddd(K, L: integer);
begin
for I := k to n + 1 do
begin
for J := l to n do
if (MyArray[I, J]="*") and (I <> J) and not deleted[J] then
dddd(J, 0);
deleted[I] := True;
delete from Table[I] //Каким-то образом удаляем данные
end;
end;
..........
Инициализация массивов и т.д.
..........
dddd(1, 0)
..........




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
7-30171
rover
2003-01-09 15:39
2003.03.10
Кассовый аппарат


7-30144
Dor
2003-01-08 19:37
2003.03.10
Как узнать сколько памяти занято и сколько свободно???Очень надо


6-29995
Anton
2003-01-20 14:23
2003.03.10
Как можно отправить SMS сообщение из своей программы


3-29720
NightCold
2003-02-18 12:12
2003.03.10
СРОЧНО!


14-30059
Igor_thief
2003-02-19 16:56
2003.03.10
GIF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский