Visa ett inlägg
Oläst 2010-01-29, 13:42 #1
henkealgs avatar
henkealg henkealg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2008
Inlägg: 10
henkealg henkealg är inte uppkopplad
Nykomling
henkealgs avatar
 
Reg.datum: Oct 2008
Inlägg: 10
Question MySQL: Hur optimerar jag tabellerna och/eller queries?

Jag har lite problem med att lägga upp arkitekturen optimalt för en tabellrelation som jag vill skapa.

Ponera att jag har en tabell med avrelningar på en arbetsplats, med en huvudtabell bestående av:

avd_id, avd_namn, avd_beskrivning

Sedan har jag en undertabell till denna med de attribut som varje anställd i denna avdelning ska kunna ha. (ex. lön, anställningsdatum, skostorlek etc.)
(Attributen kan vara olika många för olika avdelningar.)
Undertabellen har följdaktiligen:
underavd_id, avd_id, avd_attributnamn

So far so good.

Jag lägger upp samma struktur på tabellen och undertabellen för anställda:
huvudtabell: anst_id, anst_namn
undertabell: anst_id, underavd_id, anst_attribut_värde

Med detta upplägg måste jag ju ställa en hel del sql frågor för att kunna lista en avdelnings anställda med deras attribut.
En generell fråga för att hämta upp avdelningen.
En generell fråga för att hämta upp avdelningens attribut
En generell fråga för att hämta upp de anställda

När jag sedan listar alla anställda måste jag köra en fråga per anställd för att kunna visa den anställdas attribut.
Detta är ju inte optimalt om jag vill lista 500+ anställda i en avdelning.

Finns det något annat upplägg på databasen, eller eller något sätt att ställa en subquery för att minimera antalet databasfrågor vid listningen?

Hoppas ni förstår min fråga? I annat fall försöker jag formulera om mig tydligare.

// Henke
henkealg är inte uppkopplad   Svara med citatSvara med citat