abcd423417984 Skrevet 28. mai 2007 Skrevet 28. mai 2007 (endret) Hei Jeg har et spørsmål angående mySQL. Jeg ønsker å begrense antallet spørringer mot databasen til det minimale. La oss si at jeg har følgende datastruktur i databasen: "hovedtabell": id | navn | type Mer spesialiserte tabeller: id | masse spesialiserte felter avhengig av hvilken tabell det er fra...men ID feltet er alltid der. Poenget her er at jeg kunne hentet ut denne dataen ved hjelp av LEFT JOIN on id eller noe slik. Problemet er bare at jeg ikke vet hvilken tabell jeg skal left join'e og hvilke felter jeg skal hente ut før jeg har sjekket type-feltet i hovedtabellen. Noen forslag på hvordan dette kan løses litt effektivt? Uten 2 spørringer altså. Formålet er å ha alle de feltene som er uavhengig av type i en og samme tabell og ha de spesialiserte feltene for hver type i en "spesialisert" tabell som er spesifikk for den typen. Endret 28. mai 2007 av invictus
Gjest Slettet+142 Skrevet 4. juni 2007 Skrevet 4. juni 2007 (endret) har tabellene et felt som kan binde to rader sammen? SELECT * FROM hovedtabell h LEFT JOIN tabell2 t ON h.id=t.id elns? Endret 4. juni 2007 av Slettet+142
abcd423417984 Skrevet 4. juni 2007 Forfatter Skrevet 4. juni 2007 har tabellene et felt som kan binde to rader sammen? SELECT * FROM hovedtabell h LEFT JOIN tabell2 t ON h.id=t.id elns? 8777303[/snapback] Ja. Problemet er bare at et felt i hovedtabell skal bestemme hvilken tabell som skal left-joines og hvilke felter den må hente ut.
Gjest Slettet+142 Skrevet 4. juni 2007 Skrevet 4. juni 2007 Jaok. Da lukter det PHP altså :/ Og sikkert to spørringer.
abcd423417984 Skrevet 4. juni 2007 Forfatter Skrevet 4. juni 2007 For web-applikasjoner (LAMP o.l.) er det noen "regel" som sier hvor mange SQL-spørringer som er akseptabelt? Jeg forstår selvfølgelig at dette vil være avhengig av maskinvaren på serveren, men hvis det eksisterer noen generelle retningslinjer så kunne det jo vært hendig å vite om disse.
roac Skrevet 4. juni 2007 Skrevet 4. juni 2007 For web-applikasjoner (LAMP o.l.) er det noen "regel" som sier hvor mange SQL-spørringer som er akseptabelt? Jeg forstår selvfølgelig at dette vil være avhengig av maskinvaren på serveren, men hvis det eksisterer noen generelle retningslinjer så kunne det jo vært hendig å vite om disse. 8784981[/snapback] Du sier svaret selv Nei, noen sånn retningslinje vil jeg hevde at ikke ville gitt deg noe, om den eksisterte. Det er så utrolig mange faktorer som spiller inn: Antallet samtidige connections, kompleksitet i spørringene, hardware, konfiugrasjon, indeksering... Jeg vil si alt fra 1 til 100+ spørringer/side vil kunne være akseptabelt, avhengig av situasjonen. Uten at jeg kan fatte at noen evt skulle ha behov for å kjøre 100 spørringere for å få opp en side...
Torbjørn Skrevet 5. juni 2007 Skrevet 5. juni 2007 har tabellene et felt som kan binde to rader sammen? SELECT * FROM hovedtabell h LEFT JOIN tabell2 t ON h.id=t.id elns? 8777303[/snapback] Ja. Problemet er bare at et felt i hovedtabell skal bestemme hvilken tabell som skal left-joines og hvilke felter den må hente ut. 8779029[/snapback] Dette høres ut som en design-feil
roac Skrevet 5. juni 2007 Skrevet 5. juni 2007 Problemet er bare at et felt i hovedtabell skal bestemme hvilken tabell som skal left-joines og hvilke felter den må hente ut. 8779029[/snapback] Vel, som andre har vært inne på... Dette er en DIGER designfeil, og vedkommende som har laget datamodellen her har ikke kunnet sakene sine. Slikt skal overhodet ikke forekomme.
abcd423417984 Skrevet 6. juni 2007 Forfatter Skrevet 6. juni 2007 (endret) Problemet er bare at et felt i hovedtabell skal bestemme hvilken tabell som skal left-joines og hvilke felter den må hente ut. 8779029[/snapback] Vel, som andre har vært inne på... Dette er en DIGER designfeil, og vedkommende som har laget datamodellen her har ikke kunnet sakene sine. Slikt skal overhodet ikke forekomme. 8792826[/snapback] Poenget er at flere forskjellige deler av programmet skal ha sin egen tabell for sin egen spesifikke data... Hver rad i en hvilken som helst av disse tabellene skal kunne identifiseres unikt i forhold til hverandre...på tvers av tabeller (skal ha et felles entrypoint). (og felles auto_increment) Videre skal kunne finne ut hvilken del av programmet som må kalles for å kunne behandle denne raden man har plukket ut hører til. Min tanke var da at man skulle samle felles data for tabellene (id og type (som beskriver hvordan data skal tolkes)) i en felles tabell og lage mer spesifikke tabeller for den enkelte. På den måten kan man i programmet slå opp en komplett liste over alle rader, velge en, og så bli presentert med det som er aktuelt i forhold til hvilken type dataen er av og hvordan denne skal behandles. Forstår dere poenget? Sitter å tenker på andre måter jeg kan løse det på, men er ganske usikker. Hele hensikten er å lage et modulært program. Endret 6. juni 2007 av invictus
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå