• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Relacje w bazie danych

Object Storage Arubacloud
0 głosów
303 wizyt
pytanie zadane 13 stycznia 2022 w SQL, bazy danych przez chrystian Gaduła (4,780 p.)
zmienione kategorie 16 stycznia 2022 przez chrystian

Stworzylem baze danych lecz nie wiem ja zrobic relacje meidzy polami by 

w tabeli badaniu Nr_zwierzecia (zwierze może mieć wiele badań jednemu badaniu jest przypisane jedno zwierze)

w tabeli Przypisany lek (Badanie może mieć wiele przypisanych leków i przypisany lek może być użyty w wielu badaniach)

w tabeli Szczepienie (zwierze może mieć wiele zabieguów  jednemu  zabiegowi   jest przypisane jedno zwierze)

w tabeli zwierze(zwierze może mieć jednego własciciela jeden właściciel może mieć wiele zwierząt)

 

create database LecznicaWeterynaryjna

go

use LecznicaWeterynaryjna

go

Create table Wlasciciel(
Kod_wlasciciela int Identity(1,1) Primary key not null,
Nazwisko nVarchar(25) not null,
Imie nvarchar(25) not null,
Miejscowosc nVarchar(30) not null,
Kodpocztowy char(8)  not null ,
adres nvarchar(30) not null,
telefon char(15)  not null ,
);
go
Create table Zwierze(
Nr_zwierzecia int Identity(1,1) Primary key not null,
Kod_wlasciciela int  unique  not null,
Gatunek char(17) null,
Nazwa nVarchar(22) not null,
Plec Char(8) check(Plec In ('Samica','Samiec')) not null,
Data_urodzenia date default getdate()  check(Data_urodzenia <=getdate())  Not null,
Czywykastrowane bit default 0,
Constraint WlZw foreign key(Kod_wlasciciela) references Wlasciciel(Kod_wlasciciela),
);

go

create table badanie(
Nr_badania int identity(1,1)  PRIMARY KEY not null,
Nr_zwierzecia int  unique  not null,
Data_badania date default getdate() check(Data_badania <=getdate()) not null,
Informacje nVarchar(400) null,
Diagnoza nchar(50) null,
Cena real  not null,
Constraint BdZw foreign key(Nr_zwierzecia) references Zwierze(Nr_zwierzecia),
);

go
create table Lek(
Nr_leku int Identity(1,1) Primary key not null,
Nazwa char(22) not null,
Postac nVarchar(10) check(Postac in('tabletki','czopki','maści', 'roztwory', 'krople ')) null,

);

go

create table PrzypisanyLek(
Nr_przypisanego_leku int Identity(1,1)  Primary Key not null,
Nr_badania int  unique  not null,
Nr_leku int  unique  not null,
Ilosc tinyint check(Ilosc between 1 and 50) default 1 not null,
Dawkowanie nchar(30) not null default 'raz dziennie'
Constraint PlBd  foreign key(Nr_badania) references badanie(Nr_badania),
Constraint PlLe foreign key(Nr_leku) references Lek(Nr_leku),
);

go



Create table Szczepienie(
Nr_szczepienia int Identity(1,1)  Primary Key not null,
Nr_zwierzecia int  unique  not null,
Data_szczepienia date default getdate() check(Data_szczepienia <=getdate()) not null,
Cena real  not null,
Constraint SzZw foreign key(Nr_zwierzecia) references Zwierze(Nr_zwierzecia)
);

go

Create table Zabieg(
Nr_zabiegu int identity(1,1)  PRIMARY KEY not null,
Nr_zwierzecia int  unique  not null,
Nazwa_zabiegu nchar(44) not null,
Data_zabiegu date default getdate() check(Data_zabiegu <=getdate()) not null,
Cena real  not null,
Constraint ZaZw foreign key(Nr_zwierzecia) references Zwierze(Nr_zwierzecia)
); 

go




INSERT  INTO badanie values ('','2','2013-6-12','brak żadnych objawów','zwierze zdrowe','150.43');
INSERT  INTO badanie values ('','1','2013-9-22','pęcherze na języku','podejrzenie choroby niesztowica','250.00');
INSERT  INTO badanie values ('','3','2014-2-8','','zapalenie uszu','50.54');
INSERT  INTO badanie values ('','4','2015-1-28','torebka utworzona przez tkankę łączną otaczającą guz','nowotwór','350.00');

INSERT  INTO PrzypisanyLek values ('','4','','3','2 tabletki wieczorem');
INSERT  INTO PrzypisanyLek values ('','3','','5','1 dozowanie co 3 dni');
INSERT  INTO PrzypisanyLek values ('','2','','50','smarować rano i wieczorem');
INSERT  INTO PrzypisanyLek values ('','1','','','');

INSERT  INTO Lek values ('','Paracetamol','tabletki');
INSERT  INTO Lek values ('','Aktimel','czopki');
INSERT  INTO Lek values ('','Cholorbuten','maści');
INSERT  INTO Lek values ('','Insulina','krople');

INSERT  INTO Szczepienie values ('','3','2015-6-12','50.00');
INSERT  INTO Szczepienie values ('','2','2015-6-12','30.22');
INSERT  INTO Szczepienie values ('','1','2015-6-25','40.54');
INSERT  INTO Szczepienie values ('','4','2015-9-15','60.00');

INSERT  INTO Zabieg values ('','4','Odrobaczanie','2017-7-22','400.00');
INSERT  INTO Zabieg values ('','3','sterylizacja','2012-1-31','250.00');
INSERT  INTO Zabieg values ('','2','usunięcie guzów nowotworowych','2020-3-31','500.00');
INSERT  INTO Zabieg values ('','1','operacja stawów','2013-3-31','360.00');

INSERT  INTO Zwierze values ('','4','Pies','Bruno','Samiec','2016-7-22','1');
INSERT  INTO Zwierze values ('','3','Żółw','Sagi','Samiec','2012-11-23','0');
INSERT  INTO Zwierze values ('','2','Kot','Lola','Samica','2014-10-30','1');
INSERT  INTO Zwierze values ('','1','Pies','Krysia','Samica','2015-9-15','0');

INSERT  INTO Wlasciciel values ('','Kowalski','Marek','Kraków','31-925','podedworze 5','098 213 341');
INSERT  INTO Wlasciciel values ('','Nowak','Gabriel','Warszawa','21-825','konduktorska 11','567 867 344');
INSERT  INTO Wlasciciel values ('','Chwaja','Chrystian','Kraków','31-225','złota 59','564 345 123');
INSERT  INTO Wlasciciel values ('','Kowalski','Dariusz','Katowice','27-945','Wapienna 15','098 890 765');
go

 

komentarz 13 stycznia 2022 przez PreZmyK Pasjonat (21,470 p.)
Kategoria chyba jest zła. Powinno być bazy danych SQL. Musisz jeszcze raz przeprowadzić normalizację i zastosować klucze złożone z tablami łączącymi. Zbyt dużo wartości nie zależy od klucza głównego.

1 odpowiedź

0 głosów
odpowiedź 13 stycznia 2022 przez chrystian Gaduła (4,780 p.)

Jescze zapytania 

Wyświetl osobe która ma więcej niż jedno zwierze

Wyswietl date badania szczepienia zabiegu zwierzęciu o indeksie 1

Select Nazwisko,Imie from Wlasciciel, zwierze where COUNT(Kod_wlasciciela) > 2 ;
Select Data_badania, Data_szczepienia, Data_zabiegu from badanie,Szczepienie,Zabieg,Zwierze where Nr_zwierzecia = 1;

 

Podobne pytania

–1 głos
1 odpowiedź 251 wizyt
pytanie zadane 22 sierpnia 2017 w SQL, bazy danych przez Radek Begej Użytkownik (580 p.)
0 głosów
0 odpowiedzi 574 wizyt
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 16 grudnia 2020 w SQL, bazy danych przez yapyap Obywatel (1,730 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...