Главная страница
    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.006 c
4-30196
mate
2003-01-20 09:00
2003.03.10
Create.Application


1-29830
@@lex
2003-02-28 10:10
2003.03.10
Поиск


14-30071
Антон.
2003-02-21 13:27
2003.03.10
Что бы начать такое программировать, для повышения квалификации


14-30018
Amit
2003-02-24 10:03
2003.03.10
It s cool! Верно...


1-29905
Provodnick
2003-02-26 14:00
2003.03.10
Как работать с Memory Mapped Files?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский