SQL adatbázis tervezés. Hogyan lehetne összekötni a táblákat?
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
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? ...)
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?
"Összekötni?"
Igen, különféle kulcsok kötik össze a táblákat, amiket pl. lekérdezésnél felhasználunk.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!