Главная страница
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.023 c
1-2061
Oyster
2004-01-18 10:04
2004.02.02
Глюки с русскими буквами в консольном приложении


6-2242
Новичек
2003-11-26 16:05
2004.02.02
как в TwebBrowser-е найти все линки на открытой в нем страничке


3-2044
Владий
2004-01-05 16:43
2004.02.02
Как 3 запроса с одинаковой структурой совместить в 1


14-2312
hexone
2004-01-12 09:48
2004.02.02
Шрифт в редакторе Delphi


1-2066
Nab_OFF
2004-01-20 13:07
2004.02.02
StatusBar