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

Вниз

Работа со справочниками   Найти похожие ветки 

 
Explorer   (2004-11-16 12:47) [0]

Мастера!
Как правильно организовать связь такого вида
(сейчас вот так):

Таблица1-(...,Id_table2,Id_table2_1...)- карточка сотрудника
Таблица2-(ID_table2,NameDolgnost,....) - список должностей

В Id_table2 - постоянная должность (not Null) - из таблицы2
в Id_table2_1 - замещаемая должность (может NULL) - из таблицы1

Правильно ли организована связь?
И как при этом сформировать запрос, чтобы отображались замещаемые должности (если они есть)?


 
Соловьев ©   (2004-11-16 12:50) [1]


> Правильно ли организована связь?

Это может только сказать разработчик: наверное да, если она удовлетваряет требованиям ПО.

> И как при этом сформировать запрос, чтобы отображались замещаемые
> должности (если они есть)?

left join


 
Explorer   (2004-11-16 13:32) [2]

а можно пример?


 
Соловьев ©   (2004-11-16 13:35) [3]

QueryAnalizer+F1 Смотрим left join.


 
Explorer   (2004-11-16 14:24) [4]

Вывести получилось только (Id_table2_1 + Id_table2 - одной колонкой),т.е.

Иванов | инженер
Сидоров|начальник
Иванов |зам. начальника

select t.TabNum,
      t3.NameProfession
from   Staff as t left join  SprProfession as t3
on t.id_profession2=t3.id_profession
or t.id_profession=t3.id_profession
ORDER BY t.TabNum ASC

а вот как вывести вот так:

Иванов  | инженер  |зам. начальника
Сидоров |начальник |


 
Наталия ©   (2004-11-16 14:27) [5]

Так ты не со справочником профессий left join делай, а таблицу staff с ней же.


 
vuk ©   (2004-11-16 14:59) [6]

join со справочником нужно делать два раза. Один раз inner для постоянной должности, а второй раз - left, для замещаемой. Что касается организаци данных, то тут, действительно, все зависит от исходной задачи. Например, если замещаемых должностей может быть не одна, то схема будет другой.



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

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

Наверх




Память: 0.48 MB
Время: 0.043 c
14-1100691914
Marser_t
2004-11-17 14:45
2004.12.12
Антология демагогии


14-1101112299
Разработчик
2004-11-22 11:31
2004.12.12
Разработка под многопроцессорные системы


3-1100532292
denis24
2004-11-15 18:24
2004.12.12
select ....like *


3-1100178213
Мирон
2004-11-11 16:03
2004.12.12
Как в триггере BeforeInsert корректно отменить вставку строки


14-1101131287
sniknik
2004-11-22 16:48
2004.12.12
жизнеописания умученных сиадминов ;о))