Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

Дерево. Определение принадлежности узлов.   Найти похожие ветки 

 
Fay ©   (2006-08-11 11:33) [40]

Зачем T_ID в PK_S ?


 
Fay ©   (2006-08-11 11:44) [41]

Так?
create table T (
ID int not null,
PARENT_ID int null,
constraint PK_T primary key (ID),
constraint FK_T_SELF foreign key (PARENT_ID) references T (ID)
);

--Вопросы: тоже верно, немного изменю
create table Q (
ID int not null,
T_ID int not null, -- Тема вопроса
constraint PK_Q primary key (ID),
constraint FK_Q_T foreign key (T_ID) references T(ID)
);

-- Билеты - увы! Нет там вопросов. И у нее есть мастер, таблица тестов S
create table S (
ID int not null,
T_ID int not null, -- тема билета!
constraint PK_S primary key (ID),
constraint FK_S_T foreign key (T_ID) references T (ID)
)

--А теперь билеты
create table C (
ID int not null,
S_ID int not null,
constraint PK_C primary key (ID),
constraint FK_C_S foreign key (S_ID) references S (ID)
)

--А теперь внимание, билеты связаны с вопросами отношением многие-многие:
create table CQ (
C_ID int not null,
Q_ID int not null,
constraint PK_CQ primary key (C_ID, Q_ID),
constraint FK_CQ_C foreign key (C_ID) references C (ID),
constraint FK_CQ_Q foreign key (Q_ID) references Q (ID)
)


 
Fay ©   (2006-08-11 11:47) [42]

В смысле
create table T (
ID int not null,
PARENT_ID int null,
constraint PK_T primary key (ID),
constraint FK_T_SELF foreign key (PARENT_ID) references T (ID)
);

-- Вопросы
create table Q (
ID int not null,
T_ID int not null, -- Тема вопроса
constraint PK_Q primary key (ID),
constraint FK_Q_T foreign key (T_ID) references T(ID)
);

-- Тесты
create table S (
ID int not null,
T_ID int not null, -- Тема теста
constraint PK_S primary key (ID),
constraint FK_S_T foreign key (T_ID) references T (ID)
)

-- Билеты
create table C (
ID int not null,
S_ID int not null,
constraint PK_C primary key (ID),
constraint FK_C_S foreign key (S_ID) references S (ID)
)

-- билеты связаны с вопросами отношением многие-многие:
create table CQ (
C_ID int not null,
Q_ID int not null,
constraint PK_CQ primary key (C_ID, Q_ID),
constraint FK_CQ_C foreign key (C_ID) references C (ID),
constraint FK_CQ_Q foreign key (Q_ID) references Q (ID)
)


 
Romkin ©   (2006-08-11 11:53) [43]

ДА я понял. И ты тоже? Удовлетворяет в смысле что все влезает. Не удовлетворяет в смысле ограничений, твоя модель дает больше свободы.


 
Romkin ©   (2006-08-11 11:55) [44]

... и в то же самое время уменьшает возможности при написании собственно приложения. Усложняется оно.



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

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.047 c
15-1159026826
Весь в делах
2006-09-23 19:53
2006.10.15
Письмо Биллу :)


2-1159195466
vyper
2006-09-25 18:44
2006.10.15
Как убить процесс


11-1135150285
Lari
2005-12-21 10:31
2006.10.15
Перехват нажатия кнопки в заголовке программы


1-1157211212
Вася
2006-09-02 19:33
2006.10.15
Перехват клавиш


2-1159183346
vitv
2006-09-25 15:22
2006.10.15
FIBPlus