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

Вниз

Ссылочная целостность   Найти похожие ветки 

 
Анна   (2003-04-24 21:22) [0]

Как правильно и в каком порядке задать с.ц. в InterBase&


 
Sergey Masloff   (2003-04-24 21:32) [1]

Анна (24.04.03 21:22)
>Как правильно
в соответствии с предметной областью
>и в каком порядке задать с.ц. в InterBase
Вы знаете несколько вариантов? ;-))


 
Johnmen ©   (2003-04-24 21:33) [2]

Сначала создается первичный ключ для таблицы (одновременно с ее созданием или позже).
Потом создается ссылочный ключ для таблицы (одновременно с ее созданием или позже).
При необходимости указываются каскадные воздействия...
:)


 
Анна   (2003-04-24 21:55) [3]

Создаю ключ, потом, когда создаю с.ц. выбираю reference table, затем Index. Тут то он и ругается что Cannot edit Index. Что не так?


 
Zacho ©   (2003-04-24 22:01) [4]

Подробнее.. Приведи DDL. Или подробно опиши весь процесс, с указанием используемых инструментов. Кстати, не обязательно PK. Можно и UNIQUE INDEX, впрочем, не советую :-)


 
Johnmen ©   (2003-04-24 22:08) [5]

>Анна (24.04.03 21:55)
>..затем Index

Не понял...Для каких целей ?


 
Zacho ©   (2003-04-24 22:17) [6]

Вот небольшой пример, из реальной базы, надеюсь разберешься:
CREATE TABLE OKOF (
ID_OKOF D_ID NOT NULL,
CODE_OKOF CHAR(9) NOT NULL,
KC INTEGER,
NAME_OKOF D_NAME,
AMORT_GROUP INTEGER,
MIN_SPI INTEGER,
MAX_SPI INTEGER,
LINK_DETAIL D_ID_REFERENCE,
L1_CLASSIF INTEGER NOT NULL,
L2_CLASSIF INTEGER NOT NULL,
L3_CLASSIF INTEGER NOT NULL
);

CREATE TABLE OKOF_CLASSIF (
L1 INTEGER NOT NULL,
L2 INTEGER NOT NULL,
L3 INTEGER NOT NULL,
CODE_OKOF CHAR(9) NOT NULL,
NAME_OKOF D_NAME NOT NULL
);

/******************************************************************************/
/*** Primary Keys ***/
/******************************************************************************/

ALTER TABLE OKOF ADD CONSTRAINT PK_OKOF PRIMARY KEY (ID_OKOF);
ALTER TABLE OKOF_CLASSIF ADD CONSTRAINT PK_OKOF_CLASSIF PRIMARY KEY (L1, L2, L3);

/******************************************************************************/
/*** Foreign Keys ***/
/******************************************************************************/

ALTER TABLE OKOF ADD CONSTRAINT FK_OKOF_CLASSIF FOREIGN KEY (L1_CLASSIF, L2_CLASSIF, L3_CLASSIF) REFERENCES OKOF_CLASSIF (L1, L2, L3);


 
Johnmen ©   (2003-04-24 22:30) [7]

Игорь, поясни, почему у тебя ID_OKOF D_ID NOT NULL ?


 
Zacho ©   (2003-04-24 22:39) [8]

А хрен знает.. Вообще-то NOT NULL определено в домене D_ID. То, что NOT NULL оказалось в DDL таблицы - вестимо какая-то особенность Extract metadata в IBExpert"е.


 
Johnmen ©   (2003-04-24 23:03) [9]

Действительно особенность Extract metadata в IBExpert"е.
А в ИБконсоли-то правильно...:)


 
Анна   (2003-04-24 23:10) [10]

Заработало. Спасибо.
Ещё вопрос.
OKOF_CLASSIF - родительская, OKOF - дочерняя, связь - неидентифицирующая, я так понимаю?


 
Zacho ©   (2003-04-24 23:14) [11]


> Johnmen © (24.04.03 23:03)

В принципе, пофиг. Главное, что скрипты, созданные IBExpert"ом, нормально выполняются :-)


 
Zacho ©   (2003-04-24 23:20) [12]


> Анна (24.04.03 23:10)

Правильно, только что такое "связь - неидентифицирующая" ? Я таких терминов не знаю :) Серьезно, не понял этой фразы.


 
Анна   (2003-04-24 23:32) [13]

Цитирую: "Связь наз-ся неид-щей, если экземпляр дочерней сущности определяется иначе, чем через связь с родительской сущностью"


 
Zacho ©   (2003-04-24 23:45) [14]


> Анна (24.04.03 23:32)

Это откуда ? Не читал такого (или уже забыл) :), но здесь явно не тот случай. Или я этой цитаты не понял. В данном примере - стандартная связь один-ко-многим. А то,что по трем полям, какая разница, сколько полей ? От задачи зависит.



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
6-46874
VanX
2003-03-19 10:50
2003.05.15
Срочно нужен компонент DialUp


3-46661
Gregory
2003-04-22 22:35
2003.05.15
Пароль к БД Paradox


14-46961
NetBreaker666
2003-04-26 23:07
2003.05.15
Да, и есть здесь хоть кто-нибудь, кто когда-нибудь


11-46677
tamerlan311
2002-08-10 21:35
2003.05.15
Hbitmap


14-46902
data
2003-04-28 11:01
2003.05.15
У нас кошка окотилась - 5 штук котят, такие хорошенькие:)),