Kezdőoldal » Számítástechnika » Programozás » SQL adatbázis tervezés....

SQL adatbázis tervezés. Hogyan lehetne összekötni a táblákat?

Figyelt kérdés

van 3 tábla.

Kölcsönző(név, életkor,nem)

Könyv(szerző,cím)

CD(szerző, cím)


Ebből hogyan lehetne működő adatbázist létrehozni? Melyik tábla melyikhez kapcsolódjon?

Én így próbáltam:


CREATE TABLE [dbo].[kolcsonzo] (

[ID] INT IDENTITY (1, 1) NOT NULL,

[nev] VARCHAR (20) NOT NULL,

[eletkor] INT NOT NULL,

[nem] varchar(4) NOT NULL,

PRIMARY KEY CLUSTERED ([ID] ASC)

);



CREATE TABLE [dbo].[konyv] (

[ID] INT IDENTITY (1, 1) NOT NULL,

[szerzo] VARCHAR (25) NOT NULL,

[cim] VARCHAR (25) NOT NULL,

[kolcsonzoID] INT NOT NULL,

PRIMARY KEY CLUSTERED ([ID] ASC),

FOREIGN KEY ([kolcsonzoID]) REFERENCES [dbo].[kolcsonzo] ([ID]) ON DELETE CASCADE ON UPDATE CASCADE

);


CREATE TABLE [dbo].[cd] (

[ID] INT IDENTITY (1, 1) NOT NULL,

[szerzo] VARCHAR (25) NOT NULL,

[cim] VARCHAR (25) NOT NULL,

[kolcsonzoID] INT NOT NULL,

PRIMARY KEY CLUSTERED ([ID] ASC),

FOREIGN KEY ([kolcsonzoID]) REFERENCES [dbo].[kolcsonzo] ([ID]) ON DELETE CASCADE ON UPDATE CASCADE

);


HIBAÜZENET: System.Data.SqlClient.SqlException: 'The INSERT statement conflicted with the FOREIGN KEY constraint "FK__cd__kolcsonzoID__2739D489



#adatbázis #SQL #adatbázis kapcsolat
2019. márc. 31. 14:15
 1/8 anonim ***** válasza:

Szerintem a könyvnek és a CD-nek nincs közvetlen köze a kölcsönzőhöz, ne kerüljön bele a kölcsönzésekkel kapcsolatos adat. Felvennék még egy kölcsönzés táblát, és abba gyűjteném a kölcsönzési adatokat, sőt akár kettőt (fej-tétel, 1-n kapcsolat). Pl:

- fej: fej_id, kölcsönző_id, dátum, lejárat, fizetési + egyéb adatok,..

- tétel: tétel_id, fej_id, könyv_id (vagy cd_id), darabszám, státusz (visszahozta-e, stb.),

(Én a könyveket és CD-ket sem venném így külön.)

Azt is el kell dönteni, hogy könyv tábla mit tartalmaz; műveket vagy konkrét fizikai könyveket. (Pl. ha egy adott műből több is van raktáron? Melyiket ki kölcsönözte? ...)

2019. márc. 31. 14:37
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Plusz táblával/táblákkál, például [kolcsonzes] néven, ami azt írja le melyik kölcsonző melyik könyvet kölcsönözte ki.
2019. márc. 31. 14:38
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

1, a hibauzenet insert amit nem masoltal be, nem letezik az a pk amire hivatkozik

2, tsqlben a pk alapjaraton indexelt a clustered-et elhagyhatod

3, nem jo a tablak logikaja

Felhasznalo, konyv/cd, kolcsonzes, amiben van kolcsinzes_id, felhasznalo_id es a termek_id

4, konyvnel isbn legyen a pk, felesleges autoincremet (egy konyvol letezik tobb kiadas is) cdnel talan ean van?

2019. márc. 31. 17:14
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
Összekötni? Létrehozod a táblákat aztán majd inner joinnal lekérdezésnél pl.
2019. ápr. 1. 12:01
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

"Összekötni?"

Igen, különféle kulcsok kötik össze a táblákat, amiket pl. lekérdezésnél felhasználunk.

2019. ápr. 1. 14:31
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
0%
A kulcsokat letretudod hozni amikor a táblakat létrehozod. Ilyen adatbázisnál elég ez. Aztán majd a lekérdezésnél majd összekapcsolja ami kell. :)
2019. ápr. 1. 15:08
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
35%
#6: Még szerencse, hogy sikerült megérteni a kérdést Tóbiás.
2019. ápr. 1. 15:56
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:
köszönöm a segítséget!
2019. ápr. 2. 10:10

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!