Kom ihåg mig?
Home Menu

Menu


SQL Sätta primary key

 
Ämnesverktyg Visningsalternativ
Oläst 2005-12-02, 11:20 #1
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
Om jag har Number som första kolumn i alla tabeller (Mimer), är det då lämpligt att ha Number som primary key i alla tabeller? Eller är det fördelaktigt att komplettera med andra attribut t.ex. Number + City? Det torde räcka med Number eller bör jag väga in andra aspekter när jag sätter primary key?
1337pm är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 11:58 #2
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Om varje rad har ett unikt ID-nummer så är det den kolumnen som bör vara primary key och inget annat.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 12:45 #3
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
Okej.

En fråga till:
Jag har i uppgift att utröna huruvida en uppsättning tabeller är i BCNF eller inte. Vi ska anta att "City names" är unika. Men det går väl inte? För att om jag gör City unikt (övriga kolumner Number och State) så kan jag inte mata in stad X mer än en gång i min tabell? För om jag gör det får jag "UNIQUE constraint violation"???

Det vore trevligt om jag fick svar, jag vill ju vara säker på min sak när jag hävdar att vi lär oss saker på utbildningen som inte skulle fungera IRL.
1337pm är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 14:16 #4
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Om City Names ska vara unikt och varje stad har n antal Numbers och/eller State så går det ju inte att ha i samma tabell (om du då inte har City + en id kolumn som PK... fast det luktar ändå som fel designval. Att mata in en stads namn mer än en gång i en tabell låter jobbigt...)
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 14:47 #5
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Lindahl Lindahl är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 854
Håller med Robert. Namnen bör väl dessutom representeras på nåt annat sätt förrutom en vanlig textsträng, nu vet jag inte vad det är för slags städer du har i din tabell, men det finns ju en hel del städer (eller åtminstone tätorter i Sverige) som heter likadant men ligger på olika ställen. Kommer dock endast på utländska exempel... typ newcastle, wellington, kingston osv... men det finns svenska exempel också.
Lindahl är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 15:36 #6
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
Rörande primary keys, det spelar ingen roll om jag använder 1, 2, 3, 4 osv. i en tabell och sen gör likadant i en annan tabell? Eller ska jag välja nummer som skiljer sig åt mellan de tabeller som finns i databasen?
1337pm är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 15:37 #7
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Brukar man inte låta bli att svara på läxhjälpsfrågor och hänvisa till dokumentation?

Men du säger att Vi ska anta att "City names" är unika så är ju det en förutsättning för uppgiften oavsett om det är rimligt IRL eller inte. Läs uppgiften och svara på frågan som ställs. Hitta inte på egna frågor och förutsättningar. Då blir din studietid jobbig.

Och primary key behöver inte vara "number" i alla tabeller. Primary key skall vara den nyckel som unikt ger en rad i varje tabell. I vissa tabeller är det Number, i andra en sträng och i vissa flera kolumner. Allt beror på.

Lyssna på din lärare, gör uppgifterna på egen hand och lär dig av dina misstag istället.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 15:38 #8
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Citat:
Originally posted by 1337pm@Dec 2 2005, 16:36
Rörande primary keys, det spelar ingen roll om jag använder 1, 2, 3, 4 osv. i en tabell och sen gör likadant i en annan tabell? Eller ska jag välja nummer som skiljer sig åt mellan de tabeller som finns i databasen?
Vad tror du själv? vad säger din lärare? vad säger din kursliteratur?
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 15:51 #9
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
1337pm 1337pm är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2005
Inlägg: 1 047
Citat:
Ursprungligen postat av eg0master
Citat:
Ursprungligen postat av 1337pm
Rörande primary keys, det spelar ingen roll om jag använder 1, 2, 3, 4 osv. i en tabell och sen gör likadant i en annan tabell? Eller ska jag välja nummer som skiljer sig åt mellan de tabeller som finns i databasen?
Vad tror du själv? vad säger din lärare? vad säger din kursliteratur?
1. Jag tror att det inte spelar någon roll.
2. Min lärare är sjuk, svarar inte på mail och har ställt in föreläsningar i två veckor.
3. Antog att jag skulle få ett snabbare svar här än om jag skulle läsa i boken. Plus att jag jobbar mot en deadline med en labb.

Men nu är det så att jag är inte 14 år och den som brukar fråga om skolarbeten online, men nu gör jag ett undantag. Men visst, behåll kunskapen för dig själv men då behöver du ju inte svara heller. Ursäkta tonläget, blir bara så lack på viktigpettrar som tror de kan verka som ett subsititut för lärare.

Edit: Jag ser inte hur det kan spela någon roll om jag ställer frågan som webmaster eller som student. Jag lär mig ju för att kunna applicera IRL vid ett senare tillfälle.

Edit2: Att hela tiden hänvisa till dokumentationen hjälper inte - det stjälper. Och om det skulle vara en regel så skulle ju en hel del inlägg på WN inte finnas, för det finns ju massor av saker som man frågar om här vars svar står att finna i diverse bäcker och dylikt. Eller...vänta...vi kan kanske lägga ner hela WN, vi har ju Google till vår hjälp. Fattaru?!
1337pm är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-12-02, 21:33 #10
Crotalus Crotalus är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 40
Crotalus Crotalus är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2004
Inlägg: 40
En primärnyckel är unik för en specifik tabell så du behöver inte oroa dig om att 1,2,3,4... finns i mer än en tabell.

Sen kan jag ju tillägga att jag starkt rekommenderar att ALLTID ha en primärnyckel som ett heltal (och ej mer precision än nödvändigt).

Att ha strängar eller andra datatyper som primärnyckel innebär dels större utrymme för att lagra referenser i andra tabeller och dels prestandaförlust när du ska slå ihop flera tabeller.
Crotalus är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017