FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Ta Currency som har en internationellt standardiserad 3-ställig valutakod SEK, NOK; USD; EUR mfl dessa passar betydligt bättre som primärnycklar än ett orelaterat heltalsvärde. |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Administratör
|
Citat:
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
Citat:
När man bygger en databasstruktur i en relationsdatabas så är det viktigaste att man får en inbyggd kvalitetskontroll på informationen man lagrar. Då är naturliga primärnycklar en naturlig del av det arbetet. Främmande nycklar som då länkar till primärnycklar är en annan del. Atomära egenskaper ytterligare en. Att följa normalformernas definitioner ytterligare en. Att använda syntetsiska primärnycklar ska manundvika och endast använda i de fall när det inte finns en naturlig primärnyckel eller där en naturlig primärnyckel kommer att bestå av orimligt många kolumner (typ; >7 kolumner). Den "prestandavinst" man vinner på att använda syntetiska PK är oftast så marginell att den inte är värd att beakta, i de flesta fall. Man förlorar så otroligt mycket mer vad gäller den inbyggda kvalitetskontrollen av information när man gör det. Använder man naturliga PK så kan man som människa utföra okulärbesiktning av data på ett enklare sätt än med syntetiska PK. Du kan m a o direkt se om set står NOK i en kolumn där du för väntar dig att det ska stå SEK, men om det står 4 i stället för 7 så finns det inget naturligt sätt för en människa att avgöra om informationen är korrekt eller inte. Man måste ha mycket mer komplexa sätt att kontrollera om informationen är korrekt och det innebär att det är lättare att man får strukturella fel i sin databas och sina applikationer. Senast redigerad av Conny Westh den 2011-03-14 klockan 11:00 |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
![]() Vilken databasdesign som passar bäst beror ju på hur databasen ska användas. Men använder man ett RDBMS är man antagligen intresserad av att efterleva ACID. Annars ska man nog titta på andra databassystem med andra sätt att lagra data. Du säger: "När man bygger en databasstruktur i en relationsdatabas så är det viktigaste att man får en inbyggd kvalitetskontroll på informationen man lagrar.". Det är ju just det man åsidosätter genom att göra som du föreslår? Genom att acceptera redundans ber man om dataanomalier i databasen. För att inte tala om prestandakostnaden att i beräkningar jämföra VARCHAR med VARCHAR jämfört med INT med INT... Senast redigerad av Adestro den 2011-03-14 klockan 18:39 |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Det där med texterminal förstod jag inte? Jag använder grafiska verktyg att analysera data med. Senast redigerad av Conny Westh den 2011-03-14 klockan 12:10 |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Supermoderator
|
Citat:
Nej, det där tänket bör förpassas till det förgångna en gång för alla.
__________________
Full-stack developer, free for smaller assignments Senast redigerad av tartareandesire den 2011-03-14 klockan 14:00 |
||
![]() |
![]() |
![]() |
#7 | ||||
|
|||||
Administratör
|
Jag skulle påstå att prestandaoptimering alltid är ett självändamål. Oavsett om det är 1 eller 1 miljon användare vill man ha en rapp databas som inte tar onödigt mycket resurser i anspråk. Skalbarhet är den viktigaste relaterade aspekten, men den blir oväsentlig vid för dålig prestanda då lösningen blir för kostsam för att skala upp.
Citat:
Citat:
Citat:
Citat:
__________________
eldefors.com - Personlig (teknik)-blogg |
||||
![]() |
![]() |
Svara |
|
|