Kom ihåg mig?
Home Menu

Menu


MySQL: Hur optimerar jag tabellerna och/eller queries?

Ämnesverktyg Visningsalternativ
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
Oläst 2010-01-29, 18:19 #2
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
Citat:
Ursprungligen postat av henkealg Visa inlägg
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
Kolla upp JOIN och gör en query för att få ut det du behöver.
http://www.wellho.net/mouth/158_MySQ...UTER-JOIN.html
grinditwp är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
arkitektur, mysql


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 17:20.

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