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

Många eller få tabeller? Vilka är nackdelarna?


Aastra

Rekommendera Poster

Jag har råkat på en databas med ca 100 tabeller där varje tabell endast innehåller ett fält för timestamp och ett fält för en boolean. När data hämtas så görs det från många av tabellerna samtidigt. Skrivning sker också till flera av tabellerna samtidigt, dvs de får samma timestamp.

Jag antar att detta inte är optimalt men jag undrar vilka nackdelarna egentligen är med att ha databasen på detta sätt istället för att gruppera samman flera fält i färre tabeller, ex 10 tabeller med 10 fält i varje.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Rent utrymmesmmässigt spelar det ingen roll, men om scenariot innebär att många join-frågor ställs till databasen (något som verkligen är en flaskhals i relationsdatabaser) är det definitivt värt att fundera över om modellen verkligen måste se ut så. Utan mer information kan jag inte säga om det är rätt eller fel i detta fall, så utveckla gärna med ett par exempel på vad som skiljer tabellerna åt (representationsmässigt).

Länk till kommentar
Dela på andra webbplatser

Låt oss säga att jag har 10 prylar där jag kan läsa ut 10 olika data.

Varje enskilt data sparas i en egen tabell med ett timestamp, det blir alltså 100 tabeller med 2 kolumner i varje tabell.

Datan har inget gemensamt mer än att de råkar komma från samma pryl.

Finns det någon fördel för mig att gruppera det i 10 tabeller med 11 kolumner (timestamp+10 data)?

Läser jag ut 5 värden från pryl 1 så skulle alla värden få samma timestamp med resterande 5 kolumner skulle bli NULL.

Fortsätter jag som det är gjort nu så blir det aldrig NULL i några fält.

Vad är att föredra?

 

I framtiden kan jag tänka mig att jag har 10 sådana här databaser på 10 olika datorer. Jag kommer då att vilja ha en ny databas på en 11:e dator som sammanställer allting. Gör detta någon skillnad på min första databas?

Länk till kommentar
Dela på andra webbplatser

Så scenariot ser ut som ex. följande påhittade exempel?

 

Tabell: Bil

-----------

SäljDatum: DateTime

ÄrRöd: Boolean

 

Tabell: Cykel

-------------

SäljDatum: DateTime

ÄrRöd: Boolean

 

Din fråga skulle då vara om du hellre ska slå ihop alla sådana tabeller till en, som ex. skulle kunna se ut såhär:

 

Tabell: Fordon

--------------

SäljDatum: DateTime

ÄrRöd: Boolean

FordonsTyp: Int

 

Där FordonsType skulle vara en enumerering över olika fordonstyper, ex. Bil=1, Cykel=2 osv.

 

Ja, då skulle jag rekommendera en hopslagning och du skulle inte få några null-poster på detta vis.

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...