Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
14-2312
hexone
2004-01-12 09:48
2004.02.02
Шрифт в редакторе Delphi


1-2227
atmospheric
2004-01-20 15:09
2004.02.02
перенаправление вывода ?


4-2414
tim
2003-11-25 13:43
2004.02.02
поймать сообщение в сервисе


1-2065
Slay
2004-01-20 13:54
2004.02.02
Помогите новичку


7-2382
KosilkA
2003-11-14 17:32
2004.02.02
Прошивка CD_ROM




   Наверх