powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ПРОЕКТИРОВАНИЕ БД !!
5 сообщений из 5, страница 1 из 1
ПРОЕКТИРОВАНИЕ БД !!
    #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
ПРОЕКТИРОВАНИЕ БД !!
    #32021794
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO
Если у вас есть причины на то, что НЕ объединять таблицы tblA и tblB, значит вы ДОЛЖНЫ будете
- либо создать также 2 таблицы tblMainA и tblMainB
- либо организовывать ссылочную целостность с помощью триггеров(кстати, если у вас SQL7 и вам нужны каскадные удаления, то это как раз единственный способ)
...
Рейтинг: 0 / 0
ПРОЕКТИРОВАНИЕ БД !!
    #32021796
Pandre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Но вот-тут возникает подвох : для того, чтобы добавить в tblMain какой-либо Resource_ID,
>он должен существовать в tblA и tblB !
Что значит подвох, это обычная ситуация - для того чтобы добавить запись в таблицу, запись в таблице-справочнике (на которую есть ссылка) уже должна быть.
...
Рейтинг: 0 / 0
ПРОЕКТИРОВАНИЕ БД !!
    #32022021
MadDog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может создать view и на него навесить instead of триггер?
...
Рейтинг: 0 / 0
ПРОЕКТИРОВАНИЕ БД !!
    #32022026
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно в tablA и tablB ввести незначащую запись
Resource_ID =0
Description VarChar=''

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

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


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