---
title: "lite frågor om relationer och foreign key"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/120107-lite-frågor-om-relationer-och-foreign-key"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Nöff"
published: "2005-01-14T09:27:54.000Z"
updated: "2005-01-14T15:05:15.000Z"
replies: 7
views: 229
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/120107-lite-frågor-om-relationer-och-foreign-key"
---

# lite frågor om relationer och foreign key

## #1 — Nöff, 2005-01-14T09:27Z

men tjenare :D

tabell1:
namn varchar
efternamn varchar
adress varchar

tabell2:
namn varchar REFERENCES FOREIGN KEY tabell1(namn)
bestallda varor varchar

lite pseudokod för att illustrera...

jaja, men hursomehelst.
om jag har en person i tabell1 som heter olle, och sen lägger in olle i tabell 2, så att dessa får en relation... alles gut så långt... MEN!!!, om jag lägger till en till olle i tabell1, och efter detta raderar den första olle i tabell2, teoretiskt är ju nu inte FOREIGN KEY:n bruten eftersom det faktiskt finns en olle i tabell1 som olle i tabell2 kan relatera till, men de är "egentligen" inte samma olle... Kommer MS-SQL-servern reagera över detta och kasta ett exception, eller kommer den lugnt jobba på??.

Permalänk: https://www.webforum.nu/p/120107

## #2 — @nders, 2005-01-14T09:29Z

Du borde sätta foreign keys mot ID-fältet, och inte mot ett fält med något godtyckligt namn i.

Permalänk: https://www.webforum.nu/p/1526855

## #3 — Nöff, 2005-01-14T09:30Z

Jo det gör jag för det mesta, men jag har en tabell där jag måste göra på ett annorlunda sätt.

Permalänk: https://www.webforum.nu/p/1526856

## #4 — UlfT, 2005-01-14T09:31Z

Jag skulle gissa att sql-servern reagerar endast om du i tabell1 definierar namn som primary key, vilket du bör göra om du vill referera till just namn-kolumnen. Men egentligen är det en dålig idé att basera dessa relationer på namn-kolumner, just därför att det kan finnas flera Olle.

Permalänk: https://www.webforum.nu/p/1526857

## #5 — Nöff, 2005-01-14T09:34Z

OK, så SQL-servern´s FOREIGN KEY baseras inte på något identiskt värde utan bara det existerar ett likadant värde i parent tabellen så är allt frid och fröjd.

Permalänk: https://www.webforum.nu/p/1526859

## #6 — UlfT, 2005-01-14T09:38Z

Som sagt, det är en gissning, eftersom det är primary key-villkoret som brukar förbjuda en att ha samma kolumnvärde i flera poster. Men om det är frid och fröjd, vet jag inte. Om du har två kunder vid namn Olle, vill du då att båda dessa kunder ska stå registrerade på exakt samma beställning? Jag kan tänka mig att Olle nr 2 blir rätt sur när han får hem en beställning varor som Olle nr 1 har beställt.

Permalänk: https://www.webforum.nu/p/1526863

## #7 — LarsG, 2005-01-14T10:13Z

En foreign key kan bara referera en primary key eller ett unique constraint så du kan aldrig ha 2 stycken olle i tabell1. Så grunden för ditt resonemnag finns inte.

Permalänk: https://www.webforum.nu/p/1526891

## #8 — Nöff, 2005-01-14T15:05Z

Aah, ok ok , då förstår jag, och en primary key blir ju automatiskt UNIQUE

Permalänk: https://www.webforum.nu/p/1527048

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/120107-lite-frågor-om-relationer-och-foreign-key
