|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.04.2010, 15:36 | #1 |
Форумчанин
Регистрация: 05.03.2010
Сообщений: 125
|
внешние ключи в interbase
есть таблица с полем с которым должны быть соеденены две таблицы, поставить внешний ключ в этом поле для обоих таблиц(и их соответствующих полей) я так понял НЕЛЬЗЯ, подскажите как в этой ситуации действовать?
пожалейте новичка
|
05.04.2010, 15:42 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Перепроектировать БД, чтобы такого не требовалось.
|
05.04.2010, 15:48 | #3 |
Форумчанин
Регистрация: 05.03.2010
Сообщений: 125
|
оказывается можно, просто надо было уникальными во внешних табл поставить поля
пожалейте новичка
|
05.04.2010, 16:35 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Как это интересно? Мне SQL-синтаксис даже интересен стал, как можно внешний ключ к двум таблицам прикрутить.
|
05.04.2010, 16:47 | #5 |
Форумчанин
Регистрация: 05.03.2010
Сообщений: 125
|
.....ALTER TABLE AVTORSTVO ADD CONSTRAINT FK_AVTORSTVO_1 FOREIGN KEY (ID_AVT) REFERENCES MEDIADANNIE (AVTORI);
ALTER TABLE AVTORSTVO ADD CONSTRAINT FK_AVTORSTVO_2 FOREIGN KEY (ID_AVT) REFERENCES DOCUMENT (AVTORI);..... делаю, в IB expert сделал на одно поля просто два ключа, я не прав в чем то?
пожалейте новичка
|
05.04.2010, 17:11 | #6 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
|
|
05.04.2010, 17:24 | #7 |
Форумчанин
Регистрация: 05.03.2010
Сообщений: 125
|
там просто связь через таблицу авторство с еще одной таблицей сотрудники(связь многие ко многим), в медиаданных и документах инкременируются коды авторства, вставляются в табл АВТОРСТВО и она уже ссылается на сотрудников т е эти ключи только для связи многие ко многим....может как то проще можно?
пожалейте новичка
|
05.04.2010, 17:54 | #8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Я так понимаю, что в БД есть авторы, которые могут быть как создателями документов, так и медиаданных и причем у каждого документа/медиа может быть несколько авторов?
|
05.04.2010, 21:37 | #9 |
Форумчанин
Регистрация: 05.03.2010
Сообщений: 125
|
во во, именно так!
пожалейте новичка
|
06.04.2010, 16:15 | #10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Тогда логичнее объединить документы и медиаданные через категоризацию или как там она по научному называется.
Авторство +----------------------+ | автор (PK, FK) | | произведение (PK,FK) | +----------------------+ Произведение +----------+ | ИД (PK) | +----------+ | Название | | Тип | +----------+ Документ +-----------+ | ИД (PK,FK) | // ИД произведения +-----------+ | ... | +-----------+ В таблице произведение (название уж более подходящее сами придумайте ) основная информация по тому, что там авторы понаделали. Обязательно наличие поля "Тип", которое будет показывать что у нас за произведение такое: документ или медиаданные. Минус тут в том, что данные по одному объекту будут раскиданы по двум таблицам, ну а из плюсов: безболезненное добавление новых типов "произведений". И еще: Вы сможете обеспечить уникальность индексов в таблицах "документ" и "медиаданные" или таблица авторство в итоге "поплывёт"? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
«Внешние подпрограммы» | Dr.Caste | Помощь студентам | 0 | 20.12.2009 15:36 |
Паскаль. Подпрограммы (внешние) | Sanek19 | Помощь студентам | 3 | 16.12.2009 15:24 |
Паскаль. Внешние подпрограммы. | HD-boy | Помощь студентам | 2 | 14.12.2009 04:38 |
Вынесение кода во внешние файлы | KorDum | Общие вопросы Delphi | 18 | 03.07.2009 22:47 |