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

Relacje w bazie danych

VPS Starter Arubacloud
0 głosów
327 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ź 300 wizyt
pytanie zadane 22 sierpnia 2017 w SQL, bazy danych przez Radek Begej Użytkownik (580 p.)
0 głosów
0 odpowiedzi 788 wizyt
0 głosów
1 odpowiedź 238 wizyt
pytanie zadane 16 grudnia 2020 w SQL, bazy danych przez yapyap Obywatel (1,730 p.)

92,973 zapytań

141,937 odpowiedzi

321,173 komentarzy

62,301 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...