Just nu i M3-nätverket
Gå till innehåll

Foregin keys till sammansatt nyckel


Nuggit

Rekommendera Poster

Tjena

Jag håller på och skapar en databas i MYSQL Workbench... är osäker om jag gör rätt överhuvudtaget så börjar med det som till synes fungerar:

 

Jag har en databas som heter test

jag har lagt till följande tabeller i test:

bil

kund

manualtyp

manual

där biltabellen innehåller:

bil_auto_key(PK)

bilmodell

regnummer

kund_auto_key(FK)

 

där kundtabellen innehåller:

kund_auto_key

kundNamn

 

där manualtyp innehåller:

manualtyp_auto_key

typnamn

 

där manual innehåller:

manual_auto_key

filen

 

Det krävs dock en tabell emellan varje bil och manualtyp för att varje kund kan äga flera bilar samt varje bil har flera manualtyper och varje manualtyp innehåller flera manualer... vi kallar denna tabell för bilmanualtyp

 

Min fråga är då hur man skapar detta i MYSQL workbench...

Jag har skapat alla mina tabeller med kolumner...

Det jag är lite osäker på är hur man skapar främmande nycklar på korrekt sätt...

Det sättet som verkar fungera är att man skapar en kolumn som heter som den främmande nyckeln,

sedan i Foreign keys fliken skriver man in detta namn och väljer referenced table (där den främmande nyckeln kommer ifrån)

sedan till höger kryssar man i den skapade kolumnen och väljer referenced column...

 

MEN i den tabellen bilmanualtyp som skall ha en sammansatt nyckel ifrån bil och manualtyp...

när jag gör på detta sätt, gör båda kolumnerna till primary key och sedan väljer dessa i foreign keys fliken som nämt ovan... så får jag ett felmeddelande när jag ska spara...

 

felmeddelandet säger:

"ERROR 1050: Table 'bilmanualtyp already exists

 

Några tips?

 

Tack :)

 

/Niklas

 

 

Länk till kommentar
Dela på andra webbplatser

MODERATOR: Ta gärna bort den här tråden, då problemet har löst sig genom att jag modellerade om databasen på ett annat sätt...

/Niklas

Länk till kommentar
Dela på andra webbplatser

Vi brukar endast ta bort trådar som bryter mot någon regel.

 

Bra att du berättade så att ingen lägger tid på att hjälpa till i onödan. Du vill kanske berätta hur du modellerade om i stället, för jag antar att du nu har en bättre modell.

 

Cecilia

Moderator

Länk till kommentar
Dela på andra webbplatser

Vi brukar endast ta bort trådar som bryter mot någon regel.

 

Bra att du berättade så att ingen lägger tid på att hjälpa till i onödan. Du vill kanske berätta hur du modellerade om i stället, för jag antar att du nu har en bättre modell.

 

Cecilia

Moderator

 

Ok, tänkte att det kanske var dumt att ha en "inaktiv tråd"

Du har rätt:-)

 

Jag gjorde snarare en "sämre" modell, men då databasen kommer vara relativt liten och inte ha speciellt stor påfrestning så skippade jag helt enkelt bilmanualtyp tabellen och istället la en främmande nyckel från bil i manualtyp-tabellen

Och sedan en främmande nyckel i manual från manualtyptabellen...

Det kommer resultera i att det blir väldigt många "dubletter" av manualtyper t.ex. "motormanualer" i manualtyptabellen eftersom det kommer finnas en rad i manualtyp för varje bil som har "motormanualer"... Men då vi pratar om kanske ett 20 tal bilar som det ser ut i dagsläget och det kommer vara högst omkring 50 anrop till databasen per dag...känns det som en OK lösning

 

/Niklas

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...