webForumDet fria alternativet

Önskar idéer att lösa följande problem.

Databaser & SQL

9 svar · 808 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#1

Eftersom jag nu för tillfället saknar någon att bolla idéer med, så undrar jag hur ni skulle ha löst följande problem:

Ni har en matris som består av

                 Vecka
Distrikt (antal under veckan)

Hur som helst så kan man boka in en banner (annons) på hemsidan i alla län eller enstaka län under varje önskad veckoperiod.

Dessa banners kopplas till ett schemaid som kopplas till varje läns id i en kopplingstabell.

Att slumpa fram banners som är kopplad till ett län är inga problem, men att slumpa fram visst antal banners som är kopplade till ALLA län, är problem för mig..

Tabeller och deras koppling.
Banners <-bannerid-> bannerschema <- bannerschemaid -> bannerschema_distrikt <- distriktid-> distrikt

Hur skulle ni ha gjort?

Medlem sedan dec. 19996 721 inlägg
#2

Så, hur representeras en banner som är kopplad till alla län i databasen?

Medlem sedan nov. 20014 054 inlägg
#3

emission skrev:

Så, hur representeras en banner som är kopplad till alla län i databasen?

bannerschema
bannerschemaid | bannerid | fom_datum | tom_datum

bannerschema_distrikt
id | bannerschemaid | distriktid

distrikt
distriktid | namn

okei, där av den väsentliga tabell strukturen. En banner som är kopplad till alla län har en post i bannerschemat, och denna post refererar till alla län i bannerschema_distrikt genom att där finns en rad för varje län som den är kopplad till.

dessa banners visas som är kopplade till alla län visas, ex. när besökaren väljer att söka/se vissa saker inom ett län, ex. om man söker på blocket i norrbotten så visas endast de annonser/banners som är kopplade till norrbotten under den tidsperioden som dagensdatum finns inom.

Men väljer du att söka inom hela sverige, så skall ENDAST de annonser/banners som är kopplade till ALLA län, dvs en rad för varje län i bannerschema_distrikt under den aktuella tidsperioden som dagensdatum finns inom..

Har känslan att jag måste plocka ut alla län i en array, och sedan alla schemalagda banners under den perioden för att sedan jämföra vilka av dessa som har antalet län som matchar med arrayn ..

?! :q

Medlem sedan dec. 19996 721 inlägg
#4

Jag antar att det är en SQL-fråga inblandad där du har

WHERE distriktid=@distriktid

el. likn. När det gäller en sökning för alla län så får du helt enkelt ta bort det villkoret och DISTINCT/GROUP BY:a på bannerid, så att samma banner inte dyker upp flera gånger (för olika län)

Medlem sedan apr. 2004778 inlägg
#5

Flyttat till SQL

Medlem sedan nov. 20014 054 inlägg
#6

emission skrev:

Jag antar att det är en SQL-fråga inblandad där du har

WHERE distriktid=@distriktid

el. likn. När det gäller en sökning för alla län så får du helt enkelt ta bort det villkoret och DISTINCT/GROUP BY:a på bannerid, så att samma banner inte dyker upp flera gånger (för olika län)

Så långt tänkte jag också, men då kommer även dem som endast har bokat upp sig i ett län.. och därmed bör synas i endast det länet och ej när "ALLA" ses är sökning..

men iofs så kan jag ju alltid låta det vara så, tills vidare..

Medlem sedan dec. 19996 721 inlägg
#7

Ett enkelt alternativ är ju att skapa låtsaslänet "Alla". Annars måste du göra en SQL-fråga som kontrollerar att COUNT(DISTINCT distriktid)=21

Medlem sedan nov. 20014 054 inlägg
#8

emission skrev:

Ett enkelt alternativ är ju att skapa låtsaslänet "Alla". Annars måste du göra en SQL-fråga som kontrollerar att COUNT(DISTINCT distriktid)=21

ja det är ju enklaste alternativet, men har inte den förutsättningen, iom att schemat bygger på en matris med distrikten, veckor och antalet bokningar.

hmm..

Medlem sedan dec. 19996 721 inlägg
#9

Då återstår COUNT-alternativet

Medlem sedan nov. 20014 054 inlägg
#10

Det löste biffen! :) Se så bra det är att ha någon att prata med.. :e

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)