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

Вниз

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

 
Анна   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
1-46810
Anik
2003-05-02 14:04
2003.05.15
как можно сделать так чтобы ... в Edit курсор не отображалься.


1-46742
Mir
2003-05-05 06:06
2003.05.15
Как в Image размножить рисунок?


1-46716
zatochka
2003-05-04 15:47
2003.05.15
А не подскажите как узнать директорию Винды


14-46905
RavenD
2003-04-28 15:18
2003.05.15
Как по Break у выйти из нескольких блоков?


14-46966
Guest566
2003-04-26 14:51
2003.05.15
Как стать масткром Delphi?





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