Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ПРОЕКТИРОВАНИЕ БД !! / 5 сообщений из 5, страница 1 из 1
30.01.2002, 08:41
    #32021791
A_Y_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОЕКТИРОВАНИЕ БД !!
Привет !
У меня возник следующий сопрос при проектировании БД.
Имеются таблицы ( в упрошенном варианте ) :
Create Table tblMain
(
Record_ID Integer,
Resource_ID Integer
) ;

Create Table tblA
(
Resource_ID Integer,
Description VarChar( 100 ),
<some additional columns 1>
) ;

Create Table tblB
(
Resource_ID Integer,
Description VarChar( 100 ),
<some additional columns 2>
) ;

Поле tblMain.Resource_ID - должно быть связано как
с tblA.Resource_ID, так и с tblB.Resource_ID
( есть причины на то, что НЕ объёденять таблицы tblA & tblB )
По идее напрашивается :
Alter Table tblMain
Add Constraint ctr1Main Foreign Key ( Resource_ID ) Rerefences tblA ( Resource_ID ) ;
Alter Table tblMain
Add Constraint ctr2Main Foreign Key ( Resource_ID ) Rerefences tblB ( Resource_ID ) ;

Но вот-тут возникает подвох : для того, чтобы добавить в tblMain какой-либо Resource_ID,
он должен существовать в tblA и tblB !

Может кто-нить знает, как решить эту проблему ?

Заранее благодарен
...
Рейтинг: 0 / 0
30.01.2002, 09:21
    #32021794
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОЕКТИРОВАНИЕ БД !!
IMHO
Если у вас есть причины на то, что НЕ объединять таблицы tblA и tblB, значит вы ДОЛЖНЫ будете
- либо создать также 2 таблицы tblMainA и tblMainB
- либо организовывать ссылочную целостность с помощью триггеров(кстати, если у вас SQL7 и вам нужны каскадные удаления, то это как раз единственный способ)
...
Рейтинг: 0 / 0
30.01.2002, 10:02
    #32021796
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОЕКТИРОВАНИЕ БД !!
>Но вот-тут возникает подвох : для того, чтобы добавить в tblMain какой-либо Resource_ID,
>он должен существовать в tblA и tblB !
Что значит подвох, это обычная ситуация - для того чтобы добавить запись в таблицу, запись в таблице-справочнике (на которую есть ссылка) уже должна быть.
...
Рейтинг: 0 / 0
01.02.2002, 23:12
    #32022021
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОЕКТИРОВАНИЕ БД !!
А может создать view и на него навесить instead of триггер?
...
Рейтинг: 0 / 0
02.02.2002, 12:58
    #32022026
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОЕКТИРОВАНИЕ БД !!
Можно в tablA и tablB ввести незначащую запись
Resource_ID =0
Description VarChar=''

а в tablMain для поля Description поставить DEFAULT ''
Тогда при вставке в tablMain ВСЕГДА будес соответсвие

Я пользуюсь эти премом для заподнения необязательных реквизитов
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ПРОЕКТИРОВАНИЕ БД !! / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]