Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c