Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-2326
Soft
2004-01-09 01:08
2004.02.02
NAT(Network address translation) под WinXP с разграничением по IP


6-2247
atruhin
2003-11-27 12:31
2004.02.02
Проблема с TWinSocketStream


1-2213
Oyster
2004-01-19 13:31
2004.02.02
Что делать с ресурсами программы?


6-2249
Alek_1
2003-11-29 02:55
2004.02.02
Ошибка в сокетах


14-2325
wl
2004-01-11 13:27
2004.02.02
TChart + zoom





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский