Hej ! Det ser bra ut. Något datumfält i LÅN kan kanske vara lämpligt. Jepp ! I detta fall är det dumt, men visst kan man ha två referenser till samma tabell, t.o.m. från en tabell till sig själv. Det kan vara aktuellt i t.ex. en släktdatabas: OK !Att skapa en databas mha kod !
Finns det några "regler" för hur man kopplar ihop två tabbeller med hjälp av foreign key ?
Om man t.ex vill göra en databas enligt följande...
PERSON BOK LÅN
====== ==== ====
personnr (PK) boknr (PK) lånenr (PK)
fnamn boktitel person
enamn ... bok
... ...
...kan då koden se ut ungefär så här då ?
CREATE TABLE PERSON
(personnr varchar(11) not null,
fnamn varchar(15),
enamn varchar(15),
PRIMARY KEY (personnr));
CREATE TABLE BOK
(boknr int not null,
boktitel varchar(15),
PRIMARY KEY (boknr));
CREATE TABLE LÅN
(lånenr int not null,
person varchar(11),
bok int,
PRIMARY KEY (lånenr),
FOREIGN KEY (person) REFERENCES PERSON (personnr)
FOREIGN KEY (bok) REFERENCES BOK (boknr));
...eller borde man gör på något annat sätt?
mvh
/RickySv: Att skapa en databas mha kod !
Sv: Att skapa en databas mha kod !
Jag kommer att lägga till datum plus lite till.
Ville bara kolla om jag hade fattat hur man kopplar ihop tabellerna.
Kan man även koppla så här...
PERSON BOK LÅN
====== ==== ====
personnr (PK) boknr (PK) lånenr (PK)
fnamn boktitel person1
enamn ... person2
... bok
...
CREATE TABLE PERSON
(personnr varchar(11) not null,
fnamn varchar(15),
enamn varchar(15),
PRIMARY KEY (personnr));
CREATE TABLE BOK
(boknr int not null,
boktitel varchar(15),
PRIMARY KEY (boknr));
CREATE TABLE LÅN
(lånenr int not null,
person1 varchar(11),
person2 varchar(11),
bok int,
PRIMARY KEY (lånenr),
FOREIGN KEY (person1) REFERENCES PERSON (personnr)
FOREIGN KEY (person2) REFERENCES PERSON (personnr)
FOREIGN KEY (bok) REFERENCES BOK (boknr));
...dvs, att man har två personer eller samma person kopplad två gånger till varje lån. I detta fall så kanske det inte finns någon anledning. Men skulle man kunna göra så?
mvh
/RickySv: Att skapa en databas mha kod !
<code>
CREATE TABLE Person
(
id INT AUTO_INCREMENT,
namn VARCHAR(30),
fader INT,
moder INT,
PRIMARY KEY (id),
FOREIGN KEY (fader) REFERENCES Person(id),
FOREIGN KEY (moder) REFERENCES Person(id)
);
</code>Sv: Att skapa en databas mha kod !
Då vet jag att man kan ha två referenser (olika kolumner) kopplade till en och samma tabell och däri samma kolumn.
Tack för hjälpen!
mvh
/Ricky