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

Вниз

Oracle//создание НД   Найти похожие ветки 

 
Talla2k ©   (2004-01-09 03:06) [0]

Имеется три НД(работник,должность,зарплата)
Как Вы понимаете поля сокращены,дабы не забивать головы.

Итак :
// НД работник
create table rab(id number(5,0) primary key,name varchar2(10));

//НД должность
create table dolg(id number(5,0),dolgnost varchar2(10),foreign key(id) references rab);
т.е. НД dolg связан с НД rab (связь один ко многим).Т.е. работник может иметь несколько должностей.
Здесь все верно,вопросов нет.

//НД зарплата
create table zapr(id number(5,0),su number(5,2),foreign key(id) references rab);
А вот здесь бока!!!Т.е. получается,что работник может иметь несколько запрплат.Что недопустимо!!!
Иными словами,как сделать в Oracle связь один к одному???Причем наличие связи обязательно,т.к. по условию
будет следующее :при удалении работника удалить все связанные должности и зарплату!!!

З.Ы. Пробовал так
create table zapr(id number(5,0),su number(5,2),unique(id),foreign key(id) references rab);
Oracle говорит ,что так нельзя!!!

Подскажите,как быть???Принимаются все варианты!!!Заранее спасибо!!!


 
ЮЮ ©   (2004-01-09 06:15) [1]

create table zapr(id number(5,0) primary key ,su number(5,2),foreign key(id) references rab);


 
ЮЮ ©   (2004-01-09 06:19) [2]

>работник может иметь несколько должностей.
>получается,что работник может иметь несколько запрплат.Что недопустимо!!!

Странно, однако. А на других должностях он работает бесплатно? :-) Чтоб тебе работать за одну зарплату !!! :-))
Кстати, если по второй должности чел работает по совместительству, то на него должен составляться отдельный табель работы по совместительству, при этом количество оплачиваемых дней в этих табелях может различаться.


 
Ильш ©   (2004-01-09 06:26) [3]

И вообще ЗАРПЛАТА это тааакой геморр. Ты еще не представляешь себе скока там вся кой каки-бяки!
Или у тебя учет для фирмочки со штатом в 10 челов? ТОгда ваще в Экселе все вести можно :)


 
Sergey13 ©   (2004-01-09 09:13) [4]

>Причем наличие связи обязательно,т.к. по условию
будет следующее :при удалении работника удалить все связанные должности и зарплату!!!
>Здесь все верно,вопросов нет.
8-) Есть вопросы.
Это как. Ушел Иванов и нет больше в конторе генерального директора? ИМХО, все неправильно изначально. 8-)
1.Должности "главнее" людей. Т.е. люди должны ссылаться на должности, а не наоборот. Если должностей несколько (???) - в отдельную таблицу.
2. Что у тебя есть зарплата? Оклад? Так и поставь его для простоты в таблицу работников. А вот историю оклада в отдельную таблицу. Хотя по уму надо все в отдельную, но с признаками периодов. Если не оклад, то вообще непонятно для чего такая структура. Тут все намного сложнее получится.

И вообще непонятно при чем здесь "Oracle//создание НД"



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
1-2172
WG
2004-01-20 09:59
2004.02.02
Как заставить элементы изменять размер вместе с формой ?


1-2190
Zheks
2004-01-21 10:19
2004.02.02
Знаки после запятой


6-2239
_san_
2003-11-27 15:42
2004.02.02
Перехват сообщения об ошибке открытия сокета.


4-2422
Sword-Fish
2003-11-25 01:45
2004.02.02
Процессы в Win XP


4-2426
Phantom
2003-11-24 19:57
2004.02.02
Как работать с функцией WinAPI - IsHungThread ?